递归算法

程序直接或间接调用自身的编程技巧称为递归算法。

递归算法是一个过程或函数在其定义或说明中又直接或间接调用自身的一种方法, 它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解。递归策略只需少量的代码就可描述出解题过程所需要的多次重复计算, 大大地减少了程序的代码量。

递归的优势在于用有限的语句来定义对象的无限集合。

一般来说,递归需要有边界条件,递归前进段和递归返回段,当边界条件不满足的时候,递归前进, 当边界条件满足时,递归返回。注意:在使用递归策略时, 必须有一个明确的递归结束条件, 称为递归出口, 否则递归将无限递归下去。

递归算法一般用于解决3类问题。

1. 数据定义是按递归定义的。

2. 问题解法用递归算法实现

3. 数据的结构形式是按递归定义的。

递归的缺点:

递归算法解题的运行效率较低。 在递归调用过程中,系统为每一层的返回点., 局部变量等开辟堆栈来存储。 递归次数过多就会造成堆栈溢出。

点赞