注:仅分析递归式
一、代入法
1、猜
2、证
3、解
举例:T(n) = 4T(n/2) + n, T(1) = Θ(1)
第一次猜: ·O(n^3)
则有:T(k) ≤ ck^3 for k < n
.
数学归纳法证明:T(n) ≤ cn^3
第二次猜O(n^2)
T(n)=4T(n/2)+n
≤4 c(n/2)2 +n=cn2+n
≤cn2
继续猜O(n^2lgn)
再证明……
所以这种方法主要是在递归式不适用于其他三种方法时才用,比较繁琐。
附:时间复杂度顺序:O(1) < O(logn) < O(n) < O(nlg(n)) < O(n^2) < O(n^2log(n)) < O(n^3) < O(2^n) <O(n!) < O(n^n)