勵志

勵志人生知識庫

主定理法

主定理(Master Theorem)是算法分析中的一個重要工具,主要用於分析遞歸算法的時間複雜度。它提供了一種用漸近符號表示由分治法得到的遞推關係式的方法。

主定理的核心在於比較基準(通常是遞推式中的分子)與問題規模(通常是遞推式中的分母)的大小。如果基準弱於問題規模,那麼結果等於基準;如果基準等於問題規模,那麼結果是基準乘以一個常數;如果基準強於問題規模,那麼結果以基準為主,即結果等於基準乘以一個常數除以問題規模。

主定理的三種情況如下:

若存在常數c使得f(n) = O(n^(log_b(a - ε))),且ε > 0,那麼時間複雜度為Θ(n^(log_b(a)))。

若f(n) = Θ(n^(log_b(a))·log^k n),且k ≥ 0,那麼時間複雜度為Θ(n^(log_b(a))·log^(k + 1) n)。

若f(n) = Ω(n^(log_b(a + ε))),且ε > 0,那麼時間複雜度為Ω(n^(log_b(a + ε)))·f(n)。

主定理的推廣形式包括Akra-Bazzi定理。