配套作业——分治策略
需求
解释分治策略的基本思想,并用它分析大整数相乘问题
选做:编程实现大整数相乘问题(选做)
编程实现二分搜索,快速排序,棋盘覆盖问题
编程实现归并排序,并简述其中的分治策略体现在哪里(选做)
实现大整数相乘解释与分析代码实现测试运行
分治策略思想:
分:把问题分解成两个或者更小规模的子问题
治:利用递归解决子问题
合:归并子问题的解得到原问题的解
如果用分治策略解大整数相乘问题:
把两个整数拆分成四个小整数相乘
利用·AD+BC)=(A+B)*(C+D)-AC-BD替换,将4次乘法运算降低到3次
这里的大整数相乘只是着重于降低算法的时间复杂度,并不能真正做到大整数相乘(溢出)
要写出真正的大整数相乘,应该用一个字符数组来输入输出数组
感兴趣的读者可以参考基础算法二 | Gallifrey’s Blog中高精度乘法,编写真正的两个大整数相乘代码
1234567891011121314151617181920212223242526272829303132333435363738#include <iostream>using namespace s ...
算法设计与应用——分治策略
Divide and Conquer分析图
简介
适用条件
算法实现
算法分析
大整数相乘
利用(AD+BC)=(A+B)*(C+D)-AC-BD替换,将4次乘法运算降低到3次
分治策略举例
二分查找
二叉查找树,平衡二叉树,B树和B+树
排序问题
归并排序(Merge Sort)
快速排序
二分查找
归并排序Merge Sort
快速排序
12345678910111213void quicksort(int arr[], int low, int high) { if (low >= high) return;//没有数返回 int l = low, h = high; int x = arr[low]; while (low < high) { while ((low < high) && (arr[high] >= x)) high--; swap(arr[low], arr[high]); while ((low < high) && (arr[low] ...
配套作业——递归算法
需求
编程实现斐波那契数列,分别用递归法,数组法。比较实验结果,分析原因。
设计空间复杂度更好的算法,实现斐波那契数列。
编程实现汉诺塔问题
全排列问题(选做)
实现斐波那契数列斐波那契数列--递归法斐波那契数列--数组法比较与分析改进算法--迭代法12345678910111213141516#include<iostream>#include<time.h>using namespace std;int cnt = 0;//统计循环次数int fun1(int n ) { cnt++; if (n == 1) return 1; if (n == 2) return 1; return fun1(n - 1) + fun1(n - 2);}void main() { cout <<"fun1(25): "<< fun1(25) << endl; cout <<"循环次数: " << cnt << endl; ...
算法设计与应用——算法基础
斐波那契问题
假设兔子出生一个月后能繁殖,以后每月产一个孩子,一直下去直到永远。从一个兔子开始,问n个月后有多少个兔子?
递归算法求解
1234function Fib1(n)if n = 1 return 1if n = 2 return 1return Fib1(n-1) + Fib1(n-2)
计算 F200 大概需要 2140 个运算.在一个快速计算机上要花多长时间?(在NEC Earth Simulator上花2^92秒)
指数爆炸,所以算法很重要
算法的基础概念算法的特征
输入性:有零个或多个外部量作为算法的输入。
输出性:算法产生至少一个量作为输出。
确定性:组成算法的每条指令清晰、无歧义。
有穷性:算法中每条指令的执行次数有限,执行每条指令的时间也有限。
可行性: 算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。
程序是算法用某种程序设计语言的具体实现。程序可以不满足算法的性质(4)即有穷性。如操作系统
算法的4个标准
正确性:在合理的数据输入下,能在有限的时间内得出正确的结果。
可读性:应易于人的理解,易于调试。
健壮性: ...
Android_ListView与GridView练习
需求分析
请用ListView和自定义Adapter实现下列页面(可以自行设计并添加元素,以丰富该页面) :
(1) 界面元素如图1所示,内容可以比图1更丰富(2) 实现图1的界面列表和操作栏(Toolbar)(3) 点击任意列表项,出现第二个页面,如图2所示(点击了“北京市”,出现北京市所有区的页面)
(4) 图2的内容请用GridView和自定义的Adapter实现。(5) 实现图2 的Toolbar。
这里我反复看了几次,这里的toolbar只要求设置一个样式而已,并不用编写什么实质的功能,重点是listview和gridview的实现,和两个页面界面间交互
设计界面一布局文件的设计修改themes.xmlactivity布局文件listitem布局文件效果预览
因为toolbar和actionbar互相冲突会造成闪退,首先要在themes.xml主题布局文件中设置一个NoActionBar的style,这里项目规模比较小,我们把默认所以Activity采用主题style直接改成改成NoActionBar。
12345678910111213141516<res ...
Flutter安装踩坑指南
前言
昨天安装flutter时,遇到了不少问题,特此开了这篇博文写一下踩坑经历,解决方法,顺便做一下归档
有些安装问题参考了很多文档,博客,因为过于零散,这里只给出部分出处
1.3 搭建Flutter开发环境 | 《Flutter实战·第二版》 (flutterchina.club)
Flutter文档 - Flutter中文网 (flutterchina.club)
在 Windows 10 配置 Flutter 开发环境 | Laohoo (hujiyi.github.io)
在 Windows 操作系统上安装和配置 Flutter 开发环境 | Flutter 中文文档 | Flutter 中文开发者网站
Flutter项目启动一直卡在Running Gradle task ‘assembleDebug‘问题解决 - JavaShuo
有些问题因为中国大陆的原因暂时无解,但不影响flutter的使用,具体请看下文
由于Flutter会同时构建Android和IOS两个平台的发布包,所以Flutter同时依赖Android SDK和iOS SDK,在安装Flutter时也需要安 ...
Tag Plugins Plus标签插件的使用测试
前言
在安装了店长的Tag Plugins Plus标签插件之后,想逐个测试一下各个标签的写法,以便以后自己回顾,因此有了这篇博客(不是想水一篇博文)。
插件的出处,安装,和完整的使用教程请看店长的原文,这里就不赘述了。Tag Plugins Plushttps://akilar.top/posts/615e2dec/
因为是方便我个人使用,所以各个标签的测试并不会遵循一定的顺序
一些标签组件的组件的样式,我小幅度魔改过,所以可能按照教程写出来标签样式跟我不太一样,但功能是相同的
然后学业繁忙,本博文长期更新
分栏 tab配置语法配置参数效果预览示例源码12345{% tabs Unique name,[index] %}<!-- tab [Tab caption] [@icon] -->Any content (support inline tags too).<!-- endtab -->{% endtabs %}
Unique name :
选项卡块标签的唯一名称,不带逗号。
将在 #id 中用作每个标签及其索 ...
Android_Dialog练习
练习一需求分析
下面是弹出的提示对话框的内容(背景为白色的提示对话框),请自行设计布局文件,要求满足 :
界面元素如图所示,图片文件请自行选择任意图片替换:
点击“立即开启”,弹出新的Activity,内容为“我是一条新消息”
点击“我再想想”,关闭对话框。
设计对话框布局
这里先在layout目录下新建一个xml文件设计弹出的对话框布局
这里button的background用了自定的drawable文件效果,要修改themes.xml文件里的parent属性才能显示自定效果
1<style name="Theme.DialogTestApplication" parent="Theme.AppCompat.DayNight.DarkActionBar">
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667<?xm ...
Android_Fragment练习
需求分析
在Activity中显示如下效果
1) 界面元素如图1所示
2) 点击”人物“,文字和图片都会相应改变,如图2所示。点击”动物“和”植物“时,效果类似。
(3) 点击“Click我,传data给Activity”按钮,首先实现按钮本身的按压效果,并修改上方TextView的内容为“Animal from fragment。如图3所示。 提示:按钮在fragment类中,TextView在Activity类中
设计Activity布局
这里要用动态方式引入fragment …….</FramLayout>
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android ...
Android_4.3AdapterView与Adapter
前言
本文是根据上海应用技术大学余艳芳老师的移动应用课程写的上课笔记。
部分素材和代码没有给出(例如drawable中的文件代码),请读者自己补全或者删除,或者可以到本人github下载完整素材和代码。
完整的项目在本人的GitHub仓库中,以下是相关链接:https://github.com/ufovsmba/TodayApplication
AdapterView与Adapter
AdapterView实现过程类似于MVC架构
AdapterView实现过程
控制层: Adapter适配器承担了控制层的角色
视图层: AdapterView将前端显示和后端数据分离
模型层: 数组、XML文件、List(ArrayList,LinkList)等形式的数据
AdapterView组件
AdapterView特征
AdapterView继承了ViewGroup,其本质上是容器
AdapterView可以包括多个“列表项”,并将“列表项”以合适的形式显示出来
AdapterView所显示的“列表项”是由Adapter提供,通过AdapterView的setAdapter ...