时间复杂度分析:主定理

时间复杂度:主定理

求递归算法的复杂度:

\[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})\) 占主导地位。
posted @ 2024-11-14 16:40  dengchengyu  阅读(74)  评论(0)    收藏  举报