- 递归即是自己调用自己;但随着递归的进行,问题的规模是不断减小的,直到减少到满足退出条件;
0. 递推公式
-
n
n
n 级台阶的走法,每次可以跨 1 个台阶或 2 个台阶,问总的台阶走法是多少个?
- 递推公式: f ( n ) = f ( n − 1 ) + f ( n − 2 ) f(n)=f(n-1)+f(n-2) f(n)=f(n−1)+f(n−2)(第一次走,可以走一步,剩余 n − 1 n-1 n−1,也可以走两步,剩余 n − 2 n-2 n−2)
- 递归退出的条件: f ( 1 ) = 1 , f ( 2 ) = 1 + 1 = 2 f(1)=1, f(2)=1+1=2 f(1)=1,f(2)=1+1=2
1. 递归退出的条件
-
二叉搜索树查找
template <typename T> static BinNode<T>*& search(BinNode<T>*& v, const T& e, BinNode<T>* hot){ if (!v || (e == v->data)) return v; }
-
排序
- 退出的条件:数组的长度为 0/1;
- 对于快排而言,开始结点和终止结点相同时;