Skip to content

主定理

Master theorem · Master method

比较递归子问题总量与合并成本,快速求解一类分治递推式的渐近界。

条目类型
定理

形式陈述

a1b>1f(n) 渐近非负,并考虑

T(n)=aT(n/b)+f(n),T(1)=Θ(1),

先在 n=bk 上陈述;取整版本在通常正则假设下相同。令 d=logba。经典主定理给出:

  1. 若存在 ε>0 使 f(n)=O(ndε),则 T(n)=Θ(nd)
  2. f(n)=Θ(ndlogkn),其中常数 k0,则 T(n)=Θ(ndlogk+1n)
  3. 若存在 ε>0 使 f(n)=Ω(nd+ε),并且对某个 c<1 及充分大的 naf(n/b)cf(n),则 T(n)=Θ(f(n))

不满足这些多项式间隔或正则条件时,不能仅凭“看起来更大/更小”套用本定理。

直觉

主定理比较递归树每层子问题总成本 af(n/bi) 与叶子总量 nlogba,总成本由叶子数量、各层均摊成本或根部合并工作中的主导者决定。三种主情形分别对应叶子占优、各层同阶和根部非递归工作占优;正则条件防止 f 在缩放时异常振荡。它是快速识别模板,不是所有递归式的万能求解器。

主定理的三种主导项
例子与边界

归并排序的递推 T(n)=2T(n/2)+n 满足 nlog22=n;各层成本均为 n,共有 logn 层,故 T(n)=Θ(nlogn)。作为另外两类的对照,T(n)=T(n/2)+1Θ(logn),而 T(n)=4T(n/2)+n 由叶子项 n2 占优得 Θ(n2)

T(n)=T(n/2)+T(n/3)+n 子问题规模不统一,不符合模板;f(n)=nlogbaloglogn 等边界函数需扩展版本或其他方法。向上/下取整通常不改变渐近阶,但仍需满足基本条件。

推论与应用

它以 分治法渐近记号 为背景,递归树法 解释三种情形,代入法 可验证猜测。Akra–Bazzi 定理处理不等规模子问题,是常见延伸。

Master theorem 只处理 aT(n/b)+f(n) 型规则分治。缓存无关模型还需为同一递归计算块传输,CPU 递推不能替代 cache recurrence;Work–Depth 模型分别计算总工作和关键路径,不能只用串行 T(n) 推并行时间。精确指数算法中的Measure and Conquer按非标准 measure 分析不等分支,常见 T(k)=T(kd1)+T(kd2) 也不属于 Master theorem 三类。

参考资料
  • Thomas H. Cormen et al., Introduction to Algorithms, 4th ed., MIT Press, 2022, §4.5.
  • Manuel Akra and Louay Bazzi, “On the Solution of Linear Recurrence Equations,” 1998.
关系图谱4 个相邻概念 · 2 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组
类型化关系

使用的工具