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);}对于单向递归,可以设置一些变量保存中间结构

最近更新

财务管理诊断报告-ja 24页

单磷酸阿糖腺苷在不同类型肿瘤中的药理作用比.. 28页

黔西南州乡村旅游与民族节庆融合发展初探 3页

高速铁路场景移动通信系统切换研究综述 3页

数字孪生城市能耗模拟技术研究-全面剖析 26页

高温锻件尺寸摄影测量系统外部参数标定方法 3页

高标准无铅PCB耐热性及其影响因素研究 3页

高层建筑主体结构的施工技术探讨 3页

马蔺对Cd胁迫的响应及其富集能力分析 3页

预应力混凝土T构梁施工技术研究 3页

面向地理国情普查的快速DOM生产方法 3页

青岛北站规划区原场地表层土壤重金属污染研究.. 3页

陶瓷镀金四极杆超精密车削工艺优化 3页

长输管道SCADA系统时钟同步分析及优化 3页

锂离子电池硅基负极材料研究进展 3页

结构化面试在员工选拔中的效果与应用-全面剖析.. 27页

金融监管机构的监管权力与监管责任对称性研究.. 3页

重卡变速箱超速档支架故障分析及改进措施 3页

邻近铁路基坑开挖对铁路路基的影响分析 3页

【核心素养单元卷】部编版六年级语文上册第四.. 7页

社交媒体数据挖掘的伦理问题探讨-全面剖析 25页

连续断裂区域巷道失稳机理及控制技术研究 3页

近距离煤层开采工作面支护技术研究 3页

运用税收政策激励战略性新兴产业发展的思考与.. 3页

领导学校春季运动会开幕词(6篇) 10页

驯龙高手3观后感 29页

输变电技改项目后评价指标与方法 3页

软土地基下地下管道深基坑支护施工技术 3页

轨道交通连接器紫铜类插孔零件的加工研究 3页

路桥施工中交叉工程施工技术探析 3页