递归算法核心思想

      递归是一种函数或方法中调用自身的编程技术,递归思想在于把大问题分解为小问题,进一步分解为更小的问题,直到每个小问题可以解决为止,也就是说,递归就是

用与自己相似但规模较小的问题来描述自己。

      递归算法的三个特性:

      1,求解规模为n的问题可以转化为一个或多个结构相同规模较小的的问题,然后从这些较小的问题可以方便构造出大问题的解

      2,递归调用的次数必须是有限的

      3,递归必定有结束条件来终止递归,

     递归的算法执行过程为递推和递归两个阶段。在递推阶段,将规模为n的问题的求解递推到比原来规模小的问题的求解,而且必须有终止递归的条件。在回归阶段,在获得最简单问题的解后,逐级返回,依次得到规模较大问题的解。递归算法无论是在空间还是时间上耗费量都比扑通算法要多,在算法设计时经常将递归算法转化为非递归算法,转化方法有以下3种:

     1,通过分析跳过分解步骤,直接用循环结构来求值

     2,用栈保存程序的运行过程,通过分析只保存必须保存的信息,从而利用非递归算法代替递归算法

     3,利用栈保存参数,由于栈的后进先出的特性与递归算法的执行相吻合,因而可以用非递归算法代替递归算法

转载于:https://www.cnblogs.com/td15980891505/p/4439339.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值