全国热线:0536-8800925
新闻动态

递归—自己调用自己

      递归,又译为递回,在数学与计算机科学中,是指在函数的定义中又调用函数本身的方法。递归是一种奇妙的思考问题的方法,通过递归的这种思路,可简化问题的定义。
      递归一词常用于描述以自相似方法重复事物的过程。例如,当两面镜子相互之间近似平行时,镜中嵌套的图像是以无限递归的形式出现的
      用递归能解决哪些问题呢
      递归是一种非常接近自然思维的思想,其实了解多了以后,用起递归来是非常自然的,但不是每个场合使用递归都是合适的。通常递归方法适用于层次结构本身就是递归定义的情况,比如二叉树的遍历,因为二叉树的定义就是“一颗空树,或者一个节点+左右两颗子二叉树”,它的定义就是递归的,所以用递归操作相当方便。
      简单来说,递归问题,可以划分为一个或多个子问题,而处理子问题的规则与处理原问题的规则是一样的。
在实际应用中要使用递归方法,通常需要分析以下3个问题:
1、每一次递归调用,在处理问题的模式上都应有所缩小(通常问题模型可减半)。
2、相邻两次递归调用之间有紧密的联系,前一次要为后一次递归调用做准备,通常是前一次递归调用的输出作为后一次递归调用的输入。
3、在问题的模型极小时,必须直接给出解答而不再进行递归调用,因而每次递归调用都是有条件的(以规模未达到直接解答的大小为条件),无条件递归调用将会成为死循环而不能正常结束。
根据上面的描述,在设计递归算法时,主要需要考虑以下两方便的问题:
1、确定递归公式。把规模大的、较难解决的问题变成规模较小、易解决的同一问题,需要通过哪些步骤或等式来实现?这是解决递归问题的难点。
2、确定边界(终了)条件。在什么情况下可以直接得出问题的解?这就是问题的边界问题一级边界值。
在线咨询
Tel

0536-8800925

关注我们微信