- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第六章 递归(Recursion)
递归的概念 用C语言实现递归 递归算法的设计 具有某种可借用类同自身的子问题描述的性质。 相对于问题来说,子问题将更加简化。 某一有限步的子问题有直接的解存在。 递归的模拟 * * 定义:一个算法中,若其中有调用自身的过程,则该算法就是一个递归算法,简称递归。(自调用) 递归不是一种数据结构,而是一种有效的算法设计 注意:递归算法必须是逐步有规律简化的,最终要有一个非递归的出口,不能出现无穷调用的情况。 例:阶乘的递推定义 (1) 4!=4 × 3! (2) 3!=3 ×2! (3) 2!=2 ×1! (4) 1!=1 × 0! (5) 0!=1 (a) if(n= =0) fact = 1;/*定义出口*/ else { (b) x= n - 1; (c) 求出y=x!; /*顺序递推求解*/ (d) fact = n * y; /*回溯递推求值*/ } 程序实现递归阶乘算法的伪程序 计算斐波那契数列 long Fib ( long n ) { if ( n = 1 ) return n; else return Fib (n-1) + Fib (n-2); } 递归的优点:易编程、可读性好、易检验 long int fact(int n) { int x; long int y; if (n==0) reyurn 1; x=n-1; y=fact(x); return(n*y); } 例:用C语言实现递归求阶乘的算法。 main() { long int fn; fn=fact(4); printf(”\nfn=%ld”,fn); } 递归的调用过程: 程序执行过程中系统堆栈区的变化: 折半查找(仅限于有序序列,不妨设为递增序列) int BSearch (elemtype a[]; elemtype x, int low, int high) { int mid; if (low high) return -1; mid = (low + high)/2; if (x == a[mid]) return mid; if (x a[mid]) return BSearch(a, x, low, mid-1); else return BSearch(a,x,mid+1, high); } 基本要素: 例:Hanoi塔 要求: 1)每次只能移动一个盘子; 2)盘子可以放到ABC任何一个塔座上; 3)任何时候,都不能将较大的盘子压在较小的圆盘之上; void towers(int n, char Frompeg, char Topeg, char Auxpeg) { char * Format1 = “\n %s %c %s %c”, * MoveDisk1 = “mode disk1 from peg”, * Formatn = “\n %s %d %s %c %s %c”, * MoveDisk = “move disk”, * From = “from peg”, * To = “to peg”; if (n == 1) {printf (Format1, MoveDisk1, Frompeg, To, Topeg); return; // 递归出口 } towers(n-1, Formpeg, Auxpeg, Topeg); printf (Formatn, MoveDisk, n, From, Frompeg, to, Topeg); towers(n-1, Auxpeg, Topeg, Frompeg); } 使用时,直接删除本页! 精品课件,你值得拥有! 精品课件,你值得拥有! 使用时,直接删除本页! 精品课件,你值得拥有! 精品课件,你值得拥有! 使用时,直接删除本页! 精品课件,你值得拥有! 精品课件,你值得拥有! *
您可能关注的文档
最近下载
- 历史八年级上册《第七单元 人民解放战争》大单元整体教学设计2025.docx VIP
- GZ-2022024机器视觉系统应用赛项赛题完整版包括试题答案及全部附件-2022年全国职业院校技能大赛拟设赛项赛题.pdf VIP
- 使用安装说明书三菱电机上菱空调机.pdf VIP
- SAP培训详细分解详细分解.ppt VIP
- 7《咱当兵的人》教学设计.doc VIP
- 2024年10月浙江自考设计概论试题及答案解析.docx
- 人教版(2024)一年级美术上册第二单元《勤劳的蚕宝宝》精品课件.pptx VIP
- 《全国导游基础知识》第一节亚洲主要客源国概况(1)习题.docx VIP
- 北师大版五年级上册数学《练习四》.ppt VIP
- SAP PP模块培训材料【116页超详细】.pdf
原创力文档


文档评论(0)