- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
演示文稿演讲PPT学习教学课件医学文件教学培训课件
算法设计与分析;课程目的;主要内容介绍;教学用书;T. Cormen, C. Leiserson, R. Rivest, and C. Stein
Introduction to Algorithms, 2nd Ed.
MIT Press and McGraw-Hill Book Company, 2001;D. E. Knuth
The Art of Computer Programming, Vol. 1 and 3, Third Edition,
Addison Wesley, 1997.
;第1章 算法引论;二. 算法的基本概念;例. ;解二. ;1.2 算法复杂性分析;最坏情况下的时间复杂度:;;有效算法;例;表示算法渐近复杂度的数学符号:; Ω的定义:如果存在正的常数C和自然数N0,使得当n?N0时
有f(n)?Cg(n),则称函数f(n)当n充分大时下有界,且g(n)是它的一个下界,记为f(n)=Ω(g(n))。即f(n)的阶不低于g(n)的阶。 ;第2章 递归与分治策略;2.1 递归的概念;例1 阶乘函数
阶乘函数可递归地定义为:;阶乘函数可以找到相应的非递归方式定义:;例2 Fibonacci数列;Fibonacci数列的前10项为1,1,2,3,5,8,13,21,34,55,…,它可以递归地定义为:
;生成函数法!;例3 Ackerman函数
当一个函数及它的一个变量是由函数自身定义时,称这个函数是双递归函数。
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(n1),和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)= 。
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的增加,它以难以想象的慢速度趋向正无穷大。
;例4 排列的生成问题
设计一个递归算法生成n个元素{r1,r2,…,rn}的全排列。
;perm( list[], int k, int m){//产生前缀是list[0:k-1],后缀是 list[k:m]的所有排列
//perm(list,0,n-1)产生 list[0: n-1]的去全排列
if (k==m)? {//单元素排列?? for (int i=0; i=m; i++)??? cout list[i];?? cout endl;? }? else? {//多元素序列,递归产生排列?? for (int i=k; i=m; i++)?? {swap(list[k],list[i]);??? perm(list,k+1,m);??? swap(list[k],list[i]);?? }? } };例. 产生123的所有排列;2;例5 整数划分问题
将正整数n表示成一系列正整数之和:n=n1+n2+…+nk,
其中n1≥n2≥…≥nk≥1,k≥1。
正整数n的这种表示称为正整数n的划分。求正整数n的不
同划分个数。
例如正整数6有如下11种不同的划分:
6;
5+1;
4+2,4+1+1;
3+3,3+2+1,3+1+1+1;
2+2+2,2+2+1+1,2+1+1+1+1;
1+1+1+1+1+1。
;设q(n,m)为n的最大加数n1不大于m的划分个数。则:;显然,正整数n的划分数p(n)=q(n,n)。 ;例6 Hanoi塔问题
设a,b,c是3个塔座。开始时,在塔座a上有一叠共n个圆盘,这些圆盘自下而上,由大到小地叠在一起。各圆盘从小到大编号为1,2,…,n,现要求将塔座a上的这一叠圆盘移到塔座b上,并仍按同样顺序叠置。在移动圆盘时应遵守以下移动规则:
规则1:每次只能移动1个圆盘;
规则2:任何时刻都不允许将较大的圆盘压在较小的圆盘之上;
规则3:在满足移动规则1和2的前提下,可将圆盘移至a,b
您可能关注的文档
最近下载
- 2025年人教版八年级下册语文期末试卷含答案.pdf VIP
- 【新教材】花城版一年级音乐上册(艺术唱游)全册核心素养教案+教学计划(全35页)(2024年).doc VIP
- 二 比较文学的对象、体系与方法.ppt VIP
- 电商直播人才培养模式研究.pptx VIP
- 2020年版中国药典药物检测相关知识考试试卷.docx
- 2025割草机器人市场规模技术路线及竞争格局分析报告.docx
- 体育心理学(第三版) 季浏PPT课件.pptx
- 四年级上册“快乐读书吧” 测试题及答案 .pdf VIP
- 家用空调主板整机可靠性测试标准.docx VIP
- 2025秋教科版(2024)小学科学三年级上册教学计划及进度表(2025-2026学年第一学期).docx VIP
文档评论(0)