臨界指數 log_b a(critical exponent)
/ log base b of a /
每個分治遞迴式 T(n) = a T(n/b) + f(n) 都有一個特殊的成長率,扮演分界線的角色。把你的合併成本 f(n) 拿來和這個特殊成長率相比,你立刻就知道遞迴式往哪邊傾斜。那條分界線就是 n 的 log_b a 次方——而指數 log_b a 正是主定理的核心。
它從哪來?數一數遞迴樹的葉子。樹的深度是 log_b n(n 除以 b 幾次才到 1),每個節點有 a 個子節點,所以葉子數是 a^(log_b n)。由換底/對數律,a^(log_b n) = n^(log_b a)。所以 n^(log_b a) 恰好就是葉子所做的工作量(每個葉子做 Theta(1))。這就是它成為基準的原因:若合併成本 f(n) 小於這個葉子成本,葉子主導(情況一);若相等,每層相符,得一個 log 因子(情況二);若較大,樹根主導(情況三)。合併排序 a = b = 2,故 log_2 2 = 1;史特拉森 a = 7、b = 2,故 log_2 7 ≈ 2.807。
用這個指數來思考,整個主定理就化為一個比較:f(n) 在 n^(log_b a) 之下、之上,還是相等?它也解釋了為什麼巧妙的演算法總是設法「降低 a」(更少子問題),勝過操心 f:把史特拉森的 a 從 8 降到 7,就把指數從 log_2 8 = 3 降到 log_2 7 ≈ 2.81,是貨真價實的漸進勝利。誠實的告誡:「之上」與「之下」必須差一個多項式因子;僅僅以一個 log 因子勝過 n^(log_b a),會讓你落入主定理的縫隙,而不是乾淨地落在情況一或三。
卡拉楚巴乘法:T(n) = 3 T(n/2) + Theta(n)。臨界指數是 log_2 3 ≈ 1.585,所以 n^(log_2 3) ≈ n^1.585 大於 f(n) = n,落在情況一:T(n) = Theta(n^(log_2 3)) ≈ Theta(n^1.585),勝過課本的 Theta(n^2)。
n^(log_b a) 是葉子工作的基準;主定理只是拿 f(n) 去和它比較。
log_b a 同時取決於 a 與 b,而且微小的變化很重要:子問題數從 8 變 7(b=2)就把指數壓到 3 以下。它是「以 b 為底的 a 的對數」,不要把 log a 除以 log b 記反——當 b 不是 2 時要仔細重算。