一、概述
- 程序调用自身的编程技巧,称为递归。
- 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法。
二、特点
- 一个问题可被分解为若干层简单的子问题
- 子问题和其上层问题的解决方案一致
- 外层问题的解决依赖于子问题的解决
三、包含
- 递归结束条件。(什么时候不调用自身方法。否则死循环)
- 递归体。(什么时候需要调用自身方法)
四、优缺点
-优点
- 程序简单
-缺点
- 递归调用时会占用大量的系统堆栈,内存耗用多。
- 递归调用层次多时速度要比循环慢的多。
-应用
- 任何可用递归解决的问题也能使用迭代解决;
- 当递归方法可以更加自然地反映问题,并且易于理解和调试,并且不强调效率问题时,可以采用递归;
- 在要求高性能的情况下尽量避免使用递归,既花时间又耗内存。