主定理 2021-09-16 2 min read 假设有递推关系式 T(n)=aT(nb)+f(n)T(n)=aT(\frac{n}{b})+f(n)T(n)=aT(bn)+f(n),求它的时间复杂度。 设 d=logbad=\log_bad=logba,则存在以下关系: 当 f(n)=O(nc)f(n)=O(n^c)f(n)=O(nc),且 c<dc<dc<d 时 T(n)=Θ(nd)T(n)=\Theta(n^d) T(n)=Θ(nd) 若存在一个 k>−1k>-1k>−1,使得 f(n)=Θ(ndlogkn)f(n)=\Theta(n^d\log^kn) f(n)=Θ(ndlogkn) \quad 那么 T(n)=Θ(ndlogk+1n)T(n)=\Theta(n^d\log^{k+1}n) T(n)=Θ(ndlogk+1n) \quad k=−1k=-1k=−1 时, T(n)=ndloglognT(n)=n^d\log\log n T(n)=ndloglogn \quad k<−1k<-1k<−1 时, T(n)=ndT(n)=n^d T(n)=nd 当 f(n)=Ω(nc)f(n)=\Omega(n^c)f(n)=Ω(nc) 且 c>dc>dc>d 时 T(n)=Θ(f(n))T(n)=\Theta(f(n)) T(n)=Θ(f(n))