初赛—算法复杂度
对于 \(T(n) = a\times T(\frac{n}{b})+c\times n^k\) 这样的递归关系,有这样的结论:
- \(a>b^k\) 则有 : \(T(n) = O(c\times n^{\log_{b} a})\)
- \(a=b^k\) 则有 : \(T(n) = O(c\times n^k\times log n)\)
- \(a<b^k\) 则有 : \(T(n) = O(n^k)\)
例如:
\[T(n)=25\times T\left(\dfrac{n}{5}\right)+n^2
\]
\[a=25,b = 5,k=2\Rightarrow a=b^k
\]
\[T(n)=O(n^k\times \log n)=O(n^2\times \log n)
\]
当 \(a,b,c\) 中出现根号怎么办?换元!!
例如:
\[T(n)=4\sqrt{n}\times T(\sqrt{n})+n
\]
\[\text{令} n=2^m
\]
\[T(2^m)=4\times 2^{\frac{m}{2}}\times T(2^{\frac{m}{2}})+2^m
\]
\[\dfrac{T(2^m)}{2^m}=4\times \dfrac{T(2^{\frac{m}{2}})}{2^{\frac{m}{2}}}+1
\]
\[\text{令} g(m)=\dfrac{T(2^m)}{2^m}
\]
\[g(m)=4\times g\left(\dfrac{m}{2}\right)+1
\]
\[g(m)=m^2
\]
\[T(2^m)=2^mm^2
\]
\[T(n)=n\log^2 n
\]