一、递归的概念

· 递归是指一个方法(函数)在其定义中调用自身。
· 每次调用时传入不同的参数,有助于解决复杂问题,并使代码更简洁。

二、递归的重要规则

1. 每次调用方法时,会创建一个新的栈空间。
2. 局部变量是独立的,不会相互影响。
3. 引用类型变量(如数组)会被共享。
4. 必须有一个明确的终止条件,否则会导致无限递归(StackOverflowError)。
5. 方法执行完毕或遇到 return 时返回结果,返回给调用者。

三、递归的应用条件

满足以下三个条件可使用递归:

1. 问题可分解:大问题可分解为多个相似的小问题。
2. 有限调用:递归调用次数必须是有限的。
3. 终止条件:必须有明确的递归结束条件。

四、递归的适用问题类型

1. 数学问题:如阶乘、汉诺塔、迷宫问题等。
2. 算法中的应用:如快速排序、归并排序、二分查找、分治算法等。
3. 栈相关问题的替代:递归代码通常比显式使用栈更简洁。

五、递归模型示例

· 斐波那契数列
· 爬楼梯问题

六、练习

更多推荐