初赛—算法复杂度

对于 (T(n) = a imes T(frac{n}{b})+c imes n^k) 这样的递归关系,有这样的结论:

  • (a>b^k) 则有 : (T(n) = O(c imes n^{log_{b} a}))
  • (a=b^k) 则有 : (T(n) = O(c imes n^k imes log n))
  • (a<b^k) 则有 : (T(n) = O(n^k))

例如:

[T(n)=25 imes Tleft(dfrac{n}{5} ight)+n^2 ]

[a=25,b = 5,k=2Rightarrow a=b^k ]

[T(n)=O(n^k imes log n)=O(n^2 imes log n) ]

(a,b,c) 中出现根号怎么办?换元!!

例如:

[T(n)=4sqrt{n} imes T(sqrt{n})+n ]

[ ext{令} n=2^m ]

[T(2^m)=4 imes 2^{frac{m}{2}} imes T(2^{frac{m}{2}})+2^m ]

[dfrac{T(2^m)}{2^m}=4 imes dfrac{T(2^{frac{m}{2}})}{2^{frac{m}{2}}}+1 ]

[ ext{令} g(m)=dfrac{T(2^m)}{2^m} ]

[g(m)=4 imes gleft(dfrac{m}{2} ight)+1 ]

[g(m)=m^2 ]

[T(2^m)=2^mm^2 ]

[T(n)=nlog^2 n ]

原文地址:https://www.cnblogs.com/EricQian/p/15246389.html