孙成敏《计算机算法设计与分析》第3章.pptVIP

孙成敏《计算机算法设计与分析》第3章.ppt

  1. 1、本文档共45页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
自然数拆分(正整数拆分) 拆分的结果用一维数组A保存; 对任意自然数的所有拆分方式,依据A(1)的值,可以分为?n/2?类; 为保证拆分不重复,A中元素是非降的; 下一次的拆分,用A的下标来控制,而不是A中的元素值; 发生下一次拆分(递归调用)的判断条件 自然数拆分(正整数拆分)算法 procedure split(t) for k ?1 to t do write(A(k)) ; repeat j ?t; L ? A(j) for i ? A(j?1) to L/2 do A(j) ? i; A(j+1) ? L?i ; call split(t+1) repeat end split procedure main(n) for i ? 1 to n/2 do A(1) ? i; A(2) ? n?i; call split(2) repeat end main 输出已产生的 一种拆分 本次拆分的起始位置 本次拆分的数值 3.4 递归关系式的计算 递归算法的时间复杂度分析 K阶线性齐次递归关系式的解法 递归算法的时间复杂度分析 求n个元素的最大元问题 二分法 Max(A,1,n) A(1)A(2)……A(?n/2?) A(?n/2?+1) …A(n) Max(A,1, ?n/2?) Max(A,?n/2?+1,n) max 求n个元素的最大元问题 Procedure MAX (A,i, j) if i=j then return A(i) endif if j?i=1 then if A(i)A(j) then return A(i) else return A(j) ; endif else k? ?(i+j)/2? m1 ? MAX(i,k) m2 ? MAX(k+1,j) if m1m2 then return m1 else return m2; endif endif end MAX 时间复杂性 台阶问题 一个楼有n个台阶,有一个人上楼时有时一次跨一个台阶,有时跨两个台阶,写算法,计算此人有几种不同的上楼方法,并分析算法的时间复杂度。 procedure H(n) if n?2 then H?n else H?H(n?1)+H(n?2) endif end H 时间复杂性 k阶线性齐次递归关系式的解法 定义3.1 递归关系式 其中,ck≠0, ci+1, bi是给定常数,称为k阶线性常系数递归关系式。当d(n)=0时,称此递归关系式是齐次的。 一阶线性齐次递归关系式 逐步递推的方法 二阶线性齐次递归关系式 利用母函数 这是一个有广泛适用性的方法。它不仅可以用来求解线性常系数高阶齐次和非齐次的递归方程,而且可以用来求解线性变系数高阶齐次和非齐次的递归方程,甚至可以用来求解非线性递归方程。基本思想是设定递归方程解的母函数,努力建立一个关于母函数的可解方程,将其解出,然后返回递归方程的解。 二阶线性齐次递归关系式 得到特征方程 x2+bx+c=0 根据特征根r1和r2,解递归关系式 r1和r2为互不相同的实数时, 二阶线性齐次递归关系式 r1 ≠ r2,但r1和r2为是一对共轭复根时, 二阶线性齐次递归关系式 r1 = r2时, * 小 结 递归算法的定义、实现机制 递归算法设计要点 递归算法时间复杂性分析 第 三 章 递 归 3.1 递归算法实现机制 3.2 递归转非递归 3.3 递归算法设计 3.4 递归关系式的计算 递归 定义 一个过程直接地或间接地调用自己,则称这个过程是递归的过程。 递归算法在计算机理论和实际应用中都具有重要意义。 设计和分析思路清晰,实现容易,但效率较低。 3.1 递归算法的实现机制 主程序 Call A 1: 子程序 A 主程序 Call A 2: 子程序 A Call A 1: 子程序调用的实现机制 Call B 2: 子程序 A Call A 1: 主程序 子程序 B Call A 2: 子程序 A Call B 1: 主程序 子程序 B procedure f(integer n) integer y; if (n=0) return 1

文档评论(0)

1243595614 + 关注
实名认证
文档贡献者

文档有任何问题,请私信留言,会第一时间解决。

版权声明书
用户编号:7043023136000000

1亿VIP精品文档

相关文档