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

最近更新

内蒙古实验小学二年级数学上学期每周一练试题.. 4页

内蒙古2019-2020年度保育员上学期考试试题试题.. 12页

体育委员竞选演讲稿与体育局对群体体总工作调.. 8页

【灯谜】趣味儿童灯谜(二)与【灯谜】:趣味儿.. 2页

2025年度夫妻经济互助及家庭危机应对协议书 8页

2025年度大连正规报废车买卖及拆解服务协议 9页

2025年度大学实习生实习期间人身意外伤害保险.. 8页

2025年度多人合伙经营茶艺馆合作协议书 9页

2025年度外墙修复施工安全教育培训合同 8页

2025年度塑料粒子生产废弃物处理与资源化利用.. 9页

2025年度城市安全监测劳务承包合同协议书 9页

2025年度土建施工安全监理与施工方合作协议 9页

2025年度土地使用权抵债资产评估与清收服务协.. 8页

2025年度团购商铺,含租金补贴及广告位合作 9页

2025年度商铺租赁协议书(包括品牌推广、装修.. 7页

人工智能在能源经济学中的角色-全面剖析 25页

2025年度商业活动场地租赁及安全保障协议 9页

2025年度员工薪资协议书及员工激励计划 8页

2025年度员工入职及培训考核及奖励协议 7页

2025年度合同装订订书钉质量检测及验收标准合.. 9页

2025年度合伙租用物联网办公室合同 9页

2025年度叉车租赁安全协议责任书(环保设施维.. 9页

2025年度厂房买卖定金协议,含厂房附属设施配.. 9页

2025年度单位员工培训蛋糕卡订购服务协议 8页

2025年度医院医生个人雇佣协议(口腔科专家).. 7页

2025年度医疗耗材国际物流及清关服务合同 8页

2025年度劳动合同法条在智慧城市建设应用规范.. 9页

2025年度加油站安全管理与应急预案合同 9页

2025年度办公室搬迁与搬迁后网络布线合同 9页

2025年度分手后双方分手后财产分割及债权债务.. 11页