主定理

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

d=logbad=\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)=Θ(ndlogkn)f(n)=\Theta(n^d\log^kn)

\quad 那么

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

\quad k=1k=-1 时,

T(n)=ndloglognT(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))