主定理公式: T(n)=aT(n/b)+f(n)T(n) = aT(n/b) + f(n)T(n)=aT(n/b)+f(n)
算法导论书上将算法复杂度的求解方法讲的很清楚,就分三种情况:
- 当 O(nlogba)>O(f(n))O(n^{log_{b}^{a}}) > O(f(n))O(nlogba)>O(f(n))的时候,T(O)=O(nlogba)T(O)=O(n^{log_{b}^{a}})T(O)=O(nlogba)
- 当 O(nlogba)=O(f(n))O(n^{log_{b}^{a}}) = O(f(n))O(nlogba)=O(f(n))的时候,T(O)=O(nlogbalgn)T(O)=O(n^{log_{b}^{a}} lg n)T(O)=O(nlogbalgn)
- 当 O(nlogba)<O(f(n))O(n^{log_{b}^{a}}) < O(f(n))O(nlogba)<O<