Python算法详解
上QQ阅读APP看书,第一时间看更新

3.2.1 递归算法基础

在计算机编程应用中,递归算法对解决大多数问题是十分有效的,它能够使算法的描述变得简洁且易于理解。递归算法有如下3个特点。

(1)递归过程一般通过函数或子过程来实现。

(2)递归算法在函数或子过程的内部,直接或间接地调用自己的算法。

(3)递归算法实际上是把问题转换为规模缩小的同类问题的子问题,然后递归调用函数或过程来表示问题的解。

在使用递归算法时,读者应该注意如下4点。

(1)递归是在过程或函数中调用自身的过程。

(2)在使用递归策略时,必须有一个明确的递归结束条件,称为递归出口。

(3)递归算法通常显得很简洁,但是运行效率较低,所以一般不提倡用递归算法设计程序。

(4)在递归调用过程中,系统用栈来存储每一层的返回点和局部量。如果递归次数过多,则容易造成栈溢出,所以一般不提倡用递归算法设计程序。