- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
l计算机算法分析与设计
算法是指解决问题的一种方法或一个过程。
算法是若干指令的有穷序列,满足性质:
(1)输入:有外部提供的量作为算法的输入。(2)输出:算法产生至少一个量作为输出。
(3)确定性:组成算法的每条指令是清晰,无歧义的。
(4)有限性:算法中每条指令的执行次数是有限的,执行每条指令的时间也是有限的。
程序是算法用某种程序设计语言的具体实现。程序可以不满足算法的性质(4)。
分治法的设计思想是,将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之。
直接或间接地调用自身的算法称为递归算法。用函数自身给出定义的函数称为递归函数。
1.阶乘函数 阶乘函数可递归地定义为:
边界条件
递归方程
边界条件与递归方程是递归函数的二个要素
2.Fibonacci数列
无穷数列1,1,2,3,5,8,13,21,34,55,……,称为Fibonacci数列。它可以递归地定义为:
当一个函数及它的一个变量是由函数自身定义时,称这个函数是双递归函数。
Ackerman函数A(n,m)定义如下:
Ackerman函数
A(n,m)的自变量m的每一个值都定义了一个单变量函数:
M=0时,A(n,0)=n+2
M=1时,A(n,1)=A(A(n-1,1),0)=A(n-1,1)+2,和A(1,1)=2故A(n,1)=2*n
M=2时,A(n,2)=A(A(n-1,2),1)=2A(n-1,2),和A(1,2)=A(A(0,2),1)=A(1,1)=2,故A(n,2)= 2^n 。
M=3时,类似的可以推出
M=4时,A(n,4)的增长速度非常快,以至于没有适当的数学式子来表示这一函数。
定义单变量的Ackerman函数A(n)为,A(n)=A(n,n)。
定义其拟逆函数α(n)为:α(n)=min{k|A(k)≥n}。即α(n)是使n≤A(k)成立的最小的k值。
α(n)在复杂度分析中常遇到。对于通常所见到的正整数n,有α(n)≤4。但在理论上α(n)没有上界,随着n的增加,它以难以想象的慢速度趋向正无穷大。
6排列问题
设计一个递归算法生成n个元素{r1,r2,…,rn}的全排列。
设R={r1,r2,…,rn}是要进行排列的n个元素,Ri=R-{ri}。集合X中元素的全排列记为perm(X)。
(ri)perm(X)表示在全排列perm(X)的每一个排列前加上前缀得到的排列。R的全排列可归纳定义如下: 当n=1时,perm(R)=(r),其中r是集合R中唯一的元素;
当n1时,perm(R)由(r1)perm(R1),(r2)perm(R2),…,(rn)perm(Rn)构成。
7整数划分问题
在本例中,如果设p(n)为正整数n的划分数,则难以找到递归关系,因此考虑增加一个自变量:将最大加数n1不大于m的划分个数记作q(n,m)。可以建立q(n,m)的如下递归关系。
(3) q(n,n)=1+q(n,n-1);
正整数n的划分由n1=n的划分和n1≤n-1的划分组成。
(4) q(n,m)=q(n,m-1)+q(n-m,m),nm1;
正整数n的最大加数n1不大于m的划分由n1=m的划分和
n1≤n-1 的划分组成。
8.Hanoi塔问题 设a,b,c是3个塔座。开始时,在塔座a上有一叠共n个圆盘,这些圆盘自下而上,由大到小地叠在一起。各圆盘从小到大编号为1,2,…,n,现要求将塔座a上的这一叠圆盘移到塔座b上,并仍按同样顺序叠置。在移动圆盘时应遵守以下移动规则:
规则1:每次只能移动1个圆盘;
规则2:任何时刻都不允许将较大的圆盘压在较小的圆盘之上;
规则3:在满足移动规则1和2的前提下,可将圆盘移至a,b,c中任一塔座上。
public static void hanoi(int n, int a, int b, int c)
{ if (n 0)
{ hanoi(n-1, a, c, b);
move(a,b);
hanoi(n-1, c, b, a); } }
递归小结:优点:结构清晰,可读性强,而且容易用数学归纳法来证明算法的正确性,因此它为设计算法、调试程序带来很大方便。
缺点:递归算法的运行效率较低,无论是耗费的计算时间还是占用的存储空间都比非递归算法要多。
分治法的适用条件
分治法所能解决的问题一般具有以下几个特征:
1.该问题的规模缩小到一定的程度就可以容易地解决;
2.该问题可以分解为若干个规模较小的相同问题,即该问题具有最优子结构性质
3.利用该问题分解出的子问题的解可以合并为该问题的解;
4.该问题
您可能关注的文档
- I图形图像处理实验报告.doc
- l计算机应用基础考试题1.doc
- I图形学第五章作业讲评.doc
- l计算机应用基础补充习题.doc
- I图形渲染CPU重要还是显卡重要.docx
- I图形界面的隐喻设计 I2).doc
- I图形界面的隐喻设计.doc
- l计算机应用基础试题A含答案.doc
- l计算机应用基础试题B含答案.doc
- I图形的周长教学反思.doc
- 人教版八年级上册数学精品教学课件 第十三章 三角形 章末整合练.ppt
- 人教版八年级上册数学精品教学课件 第十五章 轴对称 15.3 等腰三角形-15.3.1 等腰三角形-第2课时 等腰三角形的判定 (4).ppt
- 人教版八年级上册数学精品教学课件 极速提分法 第17招 整体思想在解题中的七种技巧.ppt
- 人教版八年级上册数学精品教学课件 第十五章 分式 专项突破9 分式方程的解在求字母的值或取值范围中的常用技巧.ppt
- 人教版八年级上册数学精品教学课件 第十八章 分式 18.3 分式的加法与减法-第1课时 分式的加减.ppt
- 人教版八年级上册数学精品教学课件 第十四章 全等三角形 14.1 全等三角形及其性质 (4).ppt
- 七年级作文成长的经历(11篇).docx
- 法律责任豁免声明及工作证明函(6篇).docx
- 叙事作文那是一次难忘的尝试750字通用14篇.docx
- 沙滩里的秘密500字(14篇).docx
文档评论(0)