“它以 分治法 和 渐近记号 为背景,递归树法 解释三种情形,代入法 可验证猜测。Akra–Bazzi 定理处理不等规模子问题,是常见延伸。”
形式陈述 ​
分治算法把规模为
渐近记号和主定理是分析某些递推式的工具,不是理解分治策略形式陈述所必需的前置。
直觉
分治的核心不是“使用递归”本身,而是把实例拆成规模严格下降、结构相同且覆盖原问题的子问题,独立求解后再组合答案。真正决定效果的是三件事:子问题是否大致平衡、是否大量重叠、合并是否便宜;只要其中一项失控,递归写法未必带来效率。与动态规划相比,经典分治通常不复用重叠子问题。
例子与边界
归并排序把数组均分、递归排序两半,再线性合并,递归式
快速排序的子问题大小依赖枢轴,若枢轴总取到极端值,会形成
推论与应用
分治用于排序、几何、FFT 与选择;平面最近点对展示了“递归解两侧 + packing 证明线性合并”的几何版本。折半搜索把指数候选分成两半并在中间匹配,将典型
同一递归图像还能服务不同模型。对数方法动态化把静态结构按二进制块合并,以重建换取摊还更新;缓存无关模型通过递归布局在未知
参考资料
- Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein, Introduction to Algorithms, 4th ed., MIT Press, 2022, Parts I–VI。
- Jon Kleinberg and Éva Tardos, Algorithm Design, Pearson, 2005, Chs. 1–13。