1 / 2
文档名称:

递归算法和非递归算法的区别和转换.doc

格式:doc   大小:56KB   页数:2页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

递归算法和非递归算法的区别和转换.doc

上传人:165456465 2019/3/4 文件大小:56 KB

下载得到文件列表

递归算法和非递归算法的区别和转换.doc

文档介绍

文档介绍:递归算法和非递归算法的difference和转换递归算法实际上是一种分而治之的方法,它把复杂问题分解为简单问题来求解。对于某些复杂问题(例如hanio塔问题),递归算法是一种自然且合乎逻辑的解决问题的方式,但是递归算法的执行效率通常比较差。因此,在求解某些问题时,常采用递归算法来分析问题,用非递归算法来求解问题;另外,有些程序设计语言不支持递归,这就需要把递归算法转换为非递归算法。将递归算法转换为非递归算法有两种方法,一种是直接求值,不需要回溯;另一种是不能直接求值,需要回溯。前者使用一些变量保存中间结果,称为直接转换法;后者使用栈保存中间结果,称为间接转换法,下面分别讨论这两种方法。,将递归结构用循环结构来替代。尾递归是指在递归算法中,递归调用语句只有一个,而且是处在算法的最后。例如求阶乘的递归算法:longfact(intn){ if(n==0)return1; elsereturnn*fact(n-1);}当递归调用返回时,是返回到上一层递归调用的下一条语句,而这个返回位置正好是算法的结束处,所以,不必利用栈来保存返回信息。对于尾递归形式的递归算法,可以利用循环结构来替代。例如求阶乘的递归算法可以写成如下循环结构的非递归算法:longfact(intn){ ints=0; for(inti=1;i s=s*i;//用s保存中间结果 returns;}单向递归是指递归算法中虽然有多处递归调用语句,但各递归调用语句的参数之间没有关系,并且这些递归调用语句都处在递归算法的最后。显然,尾递归是单向递归的特例。例如求斐波那契数列的递归算法如下:intf(intn){ if(n==1||n==0)return1; elsereturnf(n-1)+f(n-2);}对于单向递归,可以设置一些变量保存中间结构

最近更新

二零二五年度[智能交通]基础设施建设劳务合同.. 16页

二零二五年度个性化车牌租赁合作协议 13页

二零二五年度全新升级版车辆租赁服务合同范本.. 15页

二零二五年度产学研合作成果转化实施合同 16页

二零二五年度住宅小区拆迁房屋分配及安置合同.. 16页

二零二五年度先进型铲车租赁服务合同 16页

二零二五年度厂房抵押贷款合同文本 10页

二零二五年度农产品电商平台推广合作协议 16页

二零二五年度办公室装修及配套设施安装合同 15页

二零二五年度商业厨房装修工程承包协议书 15页

二零二五年度情侣恋爱关系解除协议范本-@-3 13页

2025全球化项目成果总结与先锋人物颁奖动态PP.. 24页

2025年智能穿戴设备在老年跌倒预警与儿童定位.. 22页

2025年社会组织公益项目筹款与执行计划红色励.. 21页

24.3《正多边形和圆 第2课时》数学人教版九年.. 25页

中医刮痧疗法医疗 82页

2025年销售部新员工培训体系与实战转化率评估.. 24页

2025年静脉治疗并发症预警系统在肿瘤病房的智.. 26页

2018年综合实践工作计划3篇与2018年综合实践活.. 18页

2018年超市收货部工作总结范文及工作计划与20.. 10页

2018年重大传染病防治工作总结与2018年重温革.. 5页

2018幼儿园小班期末家长会发言稿与2018幼儿园.. 8页

2025年抗浮锚杆检测方案 8页

船舶制造项目可行性报告 53页

新时代好少年强国英语演讲稿 4页

冯耘先生著作家乐赢钱公式 29页

物流服务营销论文 5页

重点专科中医护理专科申报表 15页

飞星相会吉凶断事 5页

准提宝忏(word文档) 25页