时间复杂度分析:主定理
时间复杂度:主定理
求递归算法的复杂度:
\[T(n)=aT(n/b)+f(n)
\]
其中
\[f(n)=O(n^d \log^{k} n)
\]
则
\[T(n)=\begin{cases}
f(n) & d>\log_ba \\
O(n^d\log^{k+1} n) & d=\log_ba\\
O(n^{\log_ba}) & d<\log_ba
\end{cases}
\]
记忆方法
- 当 \(d>\log_ba\) 时,递归宽度的消耗小于计算 \(f(n)\) 的消耗,\(f(n)\) 占主导地位。
- 当 \(d=\log_ba\) 时,它们消耗均等,则为 \(O(n^d\log^{k+1} n)\)。
- 当 \(d<\log_ba\) 时,计算的消耗在于递归的广度,则 \(O(n^{\log _ba})\) 占主导地位。

浙公网安备 33010602011771号