时间复杂度分析:主定理

时间复杂度:主定理

求递归算法的复杂度:

\[T(n)=aT(n/b)+f(n) \]

其中

\[f(n)=O(n^d) \]

\[T(n)=\begin{cases} O(n^d) & d>\log_ba \\ O(n^d\log n) & d=\log_ba\\ O(n^{\log_ba}) & d<\log_ba \end{cases} \]

可以理解为

  • \(d>\log_ba\) 时,递归宽度的消耗小于计算 \(f(n)\) 的消耗,\(f(n)=O(n^d)\) 占主导地位。
  • \(d=\log_ba\) 时,它们消耗均等,则为 \(O(n^d\log n)\)
  • \(d<\log_ba\) 时,计算的消耗在于递归的广度,则 \(O(n^{\log _ba})\) 占主导地位。
posted @ 2024-11-14 16:40  dengchengyu  阅读(14)  评论(0编辑  收藏  举报