码迷,mamicode.com
首页 > 编程语言 > 详细

递归算法核心思想

时间:2015-04-19 17:50:54      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:

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

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

      递归算法的三个特性:

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

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

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

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

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

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

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

递归算法核心思想

标签:

原文地址:http://www.cnblogs.com/td15980891505/p/4439339.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!