「主定理」
假设现在你一个程序,共循环n次,第一次所用时间为1, 第i次循环所用时间是前一次的x倍 为了好算 假定x<1,那么可以猜到这个时间是收敛的 $T=\sum\limits_{i=0}^n x^i$ 根据等比数列球和公式 $T=\frac{1-x^n}{1-x}$ 当n趋于$\infty$时, $T=\frac{1}{1-x}$ 根据常识这个值在$x<0.9$时和$1$没什么区别 而且$n$根本不用到$\infty$而是很快就收敛到那个地方 例如$x=0.5$时$5$次就收敛到了$1.96(2)$ $x=0.7$时$10$次$3.26(3.33)$ 即使$x=0.99$也在$500$次是就到了$99.34(100)$ 所以在有限次递归的程序里, 近似可以看成整个程序的复杂度就是 第一次循环的复杂度与一个常数相乘 (哪怕$x$开到$0.99$这个常数才到$100$) 反过来,如果每一次循环都是前一次的$x$倍$(x>1)$ 近似可以看成最后一层的复杂度与一个常数相乘, 有了这个认识可以来看主定理 现有一个递归问题,每个大小为n的节点需要$n^d$的复杂度 然后分裂成$a$个大小为$n/b