“它以 分治法 和 渐近记号 为背景,递归树法 解释三种情形,代入法 可验证猜测。Akra–Bazzi 定理处理不等规模子问题,是常见延伸。”
形式陈述 ​
递归树法把递推式如
直觉
递归树把递推式分散的工作展开成按深度排列的子问题,分别计算每层非递归工作和叶子成本,再求和。观察每层工作是递增、递减还是同阶,往往能直接看出总成本由根、所有层还是叶子主导;它比直接套公式更直观,也能处理部分不规则递归。但必须正确跟踪每层节点数、子问题规模和停止深度;这棵树是成本展开图,不一定对应算法真实存储的递归树。
例子与边界
作为对照,
子问题不等规模时不能只写“每层节点翻倍”;需按实际分支加总。递归式中的取整、边界条件和叶成本也可能影响低阶项,若猜出结果仍最好用代入法做严格验证。
推论与应用
递归关系给出展开对象,渐近记号给出求和结果。主定理封装规则分治树,代入法则严格证明树形直觉得到的界。递归树本身只是一种成本展开,不预设成本必须是多项式。
有界搜索树按参数
参考资料
- Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein, Introduction to Algorithms, 4th ed., MIT Press, 2022,§4.4。
- Jon Kleinberg and Éva Tardos, Algorithm Design, Pearson, 2005,Ch. 5。