主定理

假设有递推关系式 T(n)=aT(nb)+f(n)T(n)=aT(\frac{n}{b})+f(n),求它的时间复杂度。

设 d=log⁡bad=\log_ba,则存在以下关系:

  1. 当 f(n)=O(nc)f(n)=O(n^c),且 c<dc<d 时

T(n)=Θ(nd)T(n)=\Theta(n^d)

  1. 若存在一个 k>−1k>-1,使得

f(n)=Θ(ndlog⁡kn)f(n)=\Theta(n^d\log^kn)

\quad 那么

T(n)=Θ(ndlog⁡k+1n)T(n)=\Theta(n^d\log^{k+1}n)

\quad k=−1k=-1 时,

T(n)=ndlog⁡log⁡nT(n)=n^d\log\log n

\quad k<−1k<-1 时,

T(n)=ndT(n)=n^d

  1. 当 f(n)=Ω(nc)f(n)=\Omega(n^c) 且 c>dc>d 时

T(n)=Θ(f(n))T(n)=\Theta(f(n))