当前位置: 首页 > news >正文

主定理学习笔记

主定理(Master Theorem)是用于分析分治算法复杂度的重要定理。

前置知识

渐进符号的概念

1. \(\mathcal{\Theta}\)(紧确渐进界)

若存在正常数 \(c_1,c_2,n_0\) 使得 \(\forall n\ge n_0\) 都有:

\[0\le c_1\cdot g(n)\le f(n)\le c_2\cdot g(n) \]

则记 \(f(n)=\mathcal{\Theta}(g(n))\)\(\mathcal{\Theta}\) 是等价关系,表示 \(f,g\) 增长速度同阶,类似 \(=\)

2. \(\mathcal{O}\)(渐进上界)

若存在正常数 \(c,n_0\) 使得 \(\forall n\ge n_0\) 都有:

\[0\le f(n)\le c\cdot g(n) \]

则记 \(f(n)=\mathcal{O}(g(n))\)\(\mathcal{O}\) 是拟序关系,类似 \(\le\)(小于等于)。

3. \(\mathcal{\Omega}\)(渐进下界)

若存在正常数 \(c,n_0\) 使得 \(\forall n\ge n_0\) 都有:

\[0\le c\cdot g(n)\le f(n) \]

则记 \(f(n)=\mathcal{\Omega}(g(n))\)\(\mathcal{\Omega}\) 也是拟序关系,类似 \(\ge\)(大于等于)。

三者如下图所示。

常用性质

  1. \(f(n)=\mathcal{\Theta}(g(n))\Leftrightarrow f(n)=\mathcal{O}(g(n)) \land f(n)=\mathcal{\Omega}(g(n))\)
  2. \(f(n)=\mathcal{\Theta}(f(n))\)
  3. \(c\cdot \mathcal{\Theta}(f(n))=\mathcal{\Theta}(f(n))\)\(c>0\)\(c\)\(n\) 无关)
  4. \(\mathcal{\Theta}(f(n))+\mathcal{\Theta}(g(n))=\mathcal{\Theta}(f(n)+g(n))=\mathcal{\Theta}(\max(f(n),g(n)))\)
  5. \(\mathcal{\Theta}(f(n))\mathcal{\Theta}(g(n))=\mathcal{\Theta}(f(n)g(n))\)
  6. \(\mathcal{\Theta}(\log_b n)=\mathcal{\Theta}(\log_2 n)\)\(b>1\)

性质 2~6 同样适用于 \(\mathcal{O}\)\(\mathcal{\Omega}\)

这些性质会在后面的证明中用到。

主定理简化版

\(T\left(n\right)\) 为分治算法处理规模为 \(n\) 的问题的复杂度,且满足:

\[T\left(n\right)= \begin{cases} aT\left(\frac{n}{b}\right)+\mathcal{O}\left(n^d\right) & \text{if}\;n\ge b\\ \mathcal{O}\left(1\right) & \text{if}\;n<b \end{cases} \]

其中:

  • \(a\):子问题个数(\(a\in \mathbb{Z},a\ge 1\))。
  • \(\frac{n}{b}\):每个子问题大小(\(b\in \mathbb{R},b>1\))。
  • \(\mathcal{O}\left(n^d\right)\):合并子问题的解得到原问题解的额外复杂度(\(d\ge 0\))。

则有:

\[T\left(n\right)=\begin{cases} \mathcal{O}\left(n^{\log_b a}\right) & \text{if} \; d<\log_b a \\ \mathcal{O}\left(n^d \log n\right) & \text{if} \; d=\log_b a \\ \mathcal{O}\left(n^d\right) & \text{if} \; d>\log_b a \end{cases} \]

这对于 OI 来说已经够用了。

例子

  • 对于归并排序,\(a=2,b=2,d=1\),有 \(d=\log_ba\),因此时间复杂度为 \(O(n\log n)\)
  • 对于 \(a=2,b=2,d=2\) 的完全二叉树上背包问题,有 \(d>\log_ba\),因此时间复杂度为 \(O(n^2)\)

证明

不失一般性地,假设 \(n\)\(b\) 的整数次幂。

考虑递归树。若根节点算一层,则树高为 \(\log_b n+1\)。单独计算叶子节点,展开得:

\[\begin{aligned} T\left(n\right)&=\mathcal{O}\left(a^{\log_bn}\right)+\sum_{k=0}^{\log_b n-1}a^k\cdot \mathcal{O}\left(\left(\frac{n}{b^k}\right)^d\right)\\ &=\mathcal{O}\left(a^{\log_bn}\right)+\sum_{k=0}^{\log_b n-1}\mathcal{O}\left(a^k\right)\cdot \mathcal{O}\left(\left(\frac{n}{b^k}\right)^d\right)\\ &=\mathcal{O}\left(n^{\log_ba}\right)+\sum_{k=0}^{\log_b n-1}\mathcal{O}\left(a^k\cdot \frac{n^d}{\left(b^d\right)^k}\right)\\ &=\mathcal{O}\left(n^{\log_ba}\right)+\sum_{k=0}^{\log_b n-1}\mathcal{O}\left(\left(\frac{a}{b^d}\right)^k\cdot n^d\right)\\ &=\mathcal{O}\left(n^{\log_ba}\right)+\mathcal{O}\left(\sum_{k=0}^{\log_b n-1}\left(\frac{a}{b^d}\right)^k\cdot n^d\right)\\ &=\mathcal{O}\left(n^{\log_ba}\right)+\mathcal{O}\left(n^d\cdot\sum_{k=0}^{\log_b n-1}\left(\frac{a}{b^d}\right)^k\right)\\ \end{aligned} \]

\(p=\frac{a}{b^d}\),则:

\[\begin{cases} p>1 & \text{if} \; d<\log_ba \\ p=1 & \text{if} \; d=\log_ba \\ 0<p<1 & \text{if} \; d>\log_ba \\ \end{cases} \]

\[T\left(n\right)=\mathcal{O}\left(n^{\log_ba}\right)+\mathcal{O}\left(n^d\cdot\sum_{k=0}^{\log_b n-1}p^k\right) \]

情况 1(\(d<\log_ba\)

此时 \(p>1\)

由等比数列求和公式,得:

\[\begin{aligned} T\left(n\right)&=\mathcal{O}\left(n^{\log_ba}\right)+\mathcal{O}\left(n^d\cdot \frac{p^{\log_bn}-1}{p-1}\right)\\ &=\mathcal{O}\left(n^{\log_ba}\right)+\mathcal{O}\left(n^d\cdot \left(p^{\log_bn}-1\right)\right)\\ &=\mathcal{O}\left(n^{\log_ba}\right)+\mathcal{O}\left(n^d\cdot \left(\left(\frac{a}{b^d}\right)^{\log_bn}-1\right)\right)\\ &=\mathcal{O}\left(n^{\log_ba}\right)+\mathcal{O}\left(n^d\cdot \left(\frac{a^{\log_bn}}{b^{d\log_bn}}-1\right)\right)\\ &=\mathcal{O}\left(n^{\log_ba}\right)+\mathcal{O}\left(n^d\cdot\left(\frac{n^{\log_b a}}{n^d}-1\right)\right)\\ &=\mathcal{O}\left(n^{\log_ba}\right)+\mathcal{O}\left(n^{\log_b a}-n^d\right)\\ &=\mathcal{O}\left(n^{\log_ba}\right) \end{aligned} \]

情况 2(\(d=\log_ba\)

此时 \(p=1\)

\[\begin{aligned} T\left(n\right)&=\mathcal{O}\left(n^{\log_ba}\right)+\mathcal{O}\left(n^d\cdot \log_bn\right)\\ &=\mathcal{O}\left(n^{\log_ba}\right)+\mathcal{O}\left(n^d\log n\right)\\ &=\mathcal{O}\left(n^d\log n\right) \end{aligned} \]

情况 3(\(d>\log_ba\)

此时 \(0<p<1\)

由等比数列求和公式,得:

\[\begin{aligned} T\left(n\right)&=\mathcal{O}\left(n^{\log_ba}\right)+\mathcal{O}\left(n^d\cdot \frac{p^{\log_bn}-1}{p-1}\right)\\ &=\mathcal{O}\left(n^{\log_ba}\right)+\mathcal{O}\left(n^d\cdot \frac{1-p^{\log_bn}}{1-p}\right)\\ &=\mathcal{O}\left(n^{\log_ba}\right)+\mathcal{O}\left(n^d\right)\cdot \mathcal{O}\left(1\right)\\ &=\mathcal{O}\left(n^d\right) \end{aligned} \]

注意 \(p-1<0\),故应将分母化为 \(1-p\)

证毕。

主定理完整版

\(\mathcal{O}(n^d)\) 被换成了更一般的 \(f(n)\)

\[T(n)=aT(\frac{n}{b})+f(n)\quad(n\ge b) \]

则有:

\[T(n)=\begin{cases} \Theta(n^{\log_b a}) & \text{if}\;f(n)=O(n^{\log_b a-\epsilon})\\ \Theta(f(n)) & \text{if}\;f(n)=\Omega(n^{\log_b a+\epsilon})\\ \Theta(n^{\log_b a}\log^{k+1}n) & \text{if}\;f(n)=\Theta(n^{\log_b a}\log^k n) \end{cases} \]

其中 \(\epsilon>0,k\ge 0\)

注意其中第二条还必须满足存在正常数 \(c<1,n_0\) 使得 \(\forall n\ge n_0\) 都有 \(a f(\frac{n}{b}) \le c f(n)\)

证明比较繁琐,这里不作展开。思路大致就是代入关于 \(f(n)\) 的渐进符号然后化简。

http://www.jsqmd.com/news/322177/

相关文章:

  • Canoga Perkins将突破型专用5G技术引入墨西哥克雷塔罗BLOQUE创新中心
  • 基于springboot的天盛装潢公司管理系统
  • 写论文软件哪个好?实测2026年热门工具后,虎贲等考AI凭这3点成黑马
  • Redis 服务器线程与事件循环解析
  • 烘箱市场2026年新格局:哪些品牌脱颖而出,真空烘箱/真空干燥箱/高温电热鼓风干燥箱/三维混合机,烘箱实力厂家推荐排行
  • KO细胞的应用有哪些?除了基因功能研究,还用于疾病机制、靶点验证与抗体筛选
  • 沙特阿拉伯将于2026年4月22日至23日主办世界经济论坛全球合作与增长会议:建立共识,重振增长
  • 本年度必看!最佳信息登记二维码推荐榜单
  • 黑芝麻智能华山A2000 BaRT工具链:全场景智驾模型高效编译与部署
  • I/O重定向程序
  • 使用C#调用Yolo26模型的ONNX
  • 数据库分库分表策略:水平拆分与垂直拆分指南
  • 分布式系统面试必问:CAP理论与BASE理论的核心区别与应用场景
  • 廊坊英语雅思培训机构推荐,2026权威测评出国雅思辅导机构口碑榜
  • 铜线绕桩防虫害古代园艺
  • 2026防水材料选购指南:防水涂料厂家排名?全屋卫士成优选
  • Adobe Flash Player 一款轻量级浏览器插件
  • 自动化测试框架:Selenium与Puppeteer选型建议
  • 车灯控制与报警系统设计
  • springer期刊提供的LaTex模板参考文献问题
  • 无人机飞行姿态稳不稳?关键看这个MEMS IMU
  • 2026年高端木作终极选型指南:TOP5预算60万+工艺落地与交付确定性融合的别墅大平层深度测评
  • AI 办公提效的关键是什么?5 个可复用工作流(含 Prompt 模板)
  • 2026气体检测仪市场行情及五大品牌盘点
  • 超声波深度测量仪设计与实现
  • 多项目并行管理四步法:从混沌到有序的系统化解决方案
  • 生成式AI催生GEO优化,如何成为其内容权威信源?
  • 安徽省管理咨询公司前十推荐:助力企业升级转型的专业智囊团
  • 元空AI+Clawdbot:7×24 AI办公智能体新形态详解(长期上下文/自动化任务/工具粘合)
  • 2026年高端木作推荐:真实案例可核验与效果参考路径融合的看图选型深度解析