1 / 3
文档名称:

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

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

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

分享

预览

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

上传人:762357237 2019/2/25 文件大小:43 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);}对于单向递归,可以设置一些变量保存中间结构

最近更新

必备班主任大班工作计划四篇 32页

七年级家长会课件原版 17页

塑料制造行业投资机会-全面剖析 37页

金属材料在航空航天领域的应用-全面剖析 31页

《维生素的应用》 13页

偏振米散射激光雷达在大气监测中的应用 2页

保护地蔬菜重金属污染微生物修复的研究 2页

使用斜沸石净化粘胶生产的工艺溶液和污水 2页

低碳经济视角下控制过度包装的对策与途径 2页

低压铸造铝合金车轮的分级时效热处理工艺 2页

优选法在我省化工系统中的应用(Ⅰ) 2页

煤矿安全技术服务合同模板 6页

《防止继电保护事故》 148页

价值理论在社会主义商业中应用的探索 2页

以数理统计方法确定矩形截面抵抗矩塑性系数的.. 2页

从解析几何的产生谈教改的一点想法 2页

从法国工展看普通车床技术发展的一些动向 2页

从地球化学观点谈地方病研究的学术指导思想和.. 2页

介质波导中非均匀性散射的T矩阵方法 2页

介绍一种从蔬菜中培养和分离变形虫的简易方法.. 2页

人民币实际汇率测算及其内部结构研究 2页

2025年辽宁省交通高等专科学校单招职业倾向性.. 73页

高清地图中国31省市区最全河流水系分布地图建.. 25页

2023年北京市事业单位统考真题及答案 11页

计算能手苏教版四年级下册电子版-94页 7页

2025届高考模拟作文“时间管理”升格导写 5页

剑桥雅思原版真题4 114页

《于宏杰-到底神要的是什么呢》 5页

中国道家龙门派内丹功(张苏辰) 5页

毒物分析-第七章 PPT课件 42页