遞迴關係式與主定理

主定理情況三(master-theorem case 3)

現在把天平倒向另一邊。假設遞迴頂端的切割與合併工作極為沉重,重到壓過底下所有遞迴呼叫所做的事。那麼最開頭的那一層——樹根——就佔了幾乎全部的執行時間。情況三就是「樹根勝出」的情形。

情況三適用於:存在某 epsilon > 0 使 f(n) = Omega(n^(log_b a + epsilon))(合併工作在多項式意義上比臨界項「更大」),「並且」f 滿足正則條件 a f(n/b) <= c f(n),其中某常數 c < 1、n 夠大。兩者都成立時,T(n) = Theta(f(n))。樹的直覺:往下走時每層總和呈幾何級數縮小(樹根的 f(n) 壓過子節點合起來的 a f(n/b)),所以把幾何級數加總後,樹根那一項主導,總量就是 Theta(f(n))。正則條件正是保證這種幾何縮小的東西——沒有它,各層可能不會衰減,這個簡潔的結論就會失效。

這個情況涵蓋「主要工作在合併、而非遞迴」的遞迴式——例如 T(n) = 2 T(n/2) + n^2,其中 log_2 2 = 1 而 f(n) = n^2 大了一個 n 的因子,得 T(n) = Theta(n^2)。誠實的微妙之處在正則條件:對一般多項式 f 它總是成立,但對不尋常的 f(會振盪或帶尖銳因子)它可能失效,這時即使 f 在多項式意義上較大,情況三仍不適用。即使它通常默默通過,也務必檢查。

T(n) = 2 T(n/2) + n^2:log_2 2 = 1,f(n) = n^2 = Omega(n^(1 + 1)) 故 epsilon = 1 成立;檢查正則條件:2 (n/2)^2 = n^2/2 = (1/2) f(n),c = 1/2 < 1。兩者都成立,故情況三給出 T(n) = Theta(n^2)。

當 f(n) 大一個 n 的次方且滿足正則條件時,樹根主導:T = Theta(f(n))。

在多項式意義上較大是「必要」但「不充分」——情況三還要求正則條件 a f(n/b) <= c f(n) 且 c < 1。略過這個檢查是套用情況三時最常見的錯誤。

又称
root-dominated casecase 3樹根主導情況