自己调用自己. 需要满足两个条件:
- 基线条件,就是跳出递归或结束.否则会出现死循环.
- 缩小规模.将数据一步一步的减少或缩小数据规模.直到达到基线条件.完成递归操作.
使用栈的原理实现递归操作的.
- 自己调自己
- 边界条件,递归前进段和递归返回段.
- 当边界条件不满足时,递归前进;当边界条件满足时,递归返回
- 明确函数功能是什么?
- 找出终止条件
- 写出递推公式
递归调用时需要借用栈帧存储信息,栈帧由5个区域组成:
1.输入参数
2.返回值空间
3.计算表达式时用到的临时存储空间
4.函数调用时保存的状态信息
5.输出参数
- 递归:递归前进时保存大量的栈帧信息,只有返回时才会释放
- 尾递归:当递归调用是整个函数体中最后执行的语句且它的返回值不属于表达式的一部分时,这个递归调用就是尾递归 尾递归函数的特点是在回归过程中不用做任何操作