算法分析基礎——主定理


對於形為T(n) = aT(n / b) + f(n)的遞推方程,我們有如下結論:

主定理(MasterTheorem) 設a≥1,b>1 為常數,f(n)為函數,n為非負整數,且 T(n) = aT(n / b) + f(n),則有以下結果:

  1. 若存在ε>0,使得f(n) = O(nlogba-ε),則T(n) = Θ(nlogba)
  2. 若f(n) = Θ(nlogba),則T(n) = Θ(nlogbalogn)
  3. 若存在ε>0,使得f(n) = Ω(nlogba+ε),並且對於某個常數c<1和所有充分大的n,有af(n / b)≤cf(n),則T(n) = Θ(f(n))

證明:詳見教材(推導過程略復雜,不想寫了qwq)。

由主定理可以直接得到下述推論:

推論1 依主定理條件,遞推方程為T(n)= aT(n / b) + c,則

  1. 當a≠1時,T(n) = Θ(nlogba)
  2. 當a=1時,T(n) = Θ(logn)

推論2 依主定理條件,遞推方程為T(n) = aT(n / b) + cn,則

  1. 當a>b時,T(n) = Θ(nlogba)
  2. 當a=b時,T(n) = Θ(nlogn)
  3. 當a<b時,T(n) = Θ(n)

 例 根據主定理及其推論,我們可以直接得到二分檢索算法的平均時間復雜度為Θ(logn),而二分歸並排序的平均時間復雜度為Θ(nlogn)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM