代入法和数学归纳法求解递归式
高中的时候我就被数学老师告知没有一种通用的手段从一个数列的递推公式得到他的通项公式。所以显然的也没有能对递归算法分析的万能算法。但是万幸的是, 我们总能使用代入法(即数学归纳法)来求证我们的猜测是否正确。
1. 得到一个猜测
这是比较玄学的部分了, 可以完全靠灵感, 或者来自递归树分析。
2. 数学归纳
数学归纳的基本思想是, 证明较小的参数 k 满足假设(边界条件当然需要满足假设), 并证明 k + 1 或者 k * 2等较大的输入规模下也会 满足假设,这样就证明了所有的情况都满足假设。(真是一个聪明的方法)。
在递归算法分析中, 我们需要证明对于 T ( k ) T(k) T(k) 规模的输入下假设成立, 然后证明 T ( b i g g e r ( k ) ) T(bigger(k)) T(bigger(k)) 的输入规模仍然成立。高中的时候, b i g g e r bigger bigger 函数几乎总是
(n) => n + 1;
而在递归分析中, 我们常用
(n