2. 算法基础
本章介绍了一个证明算法正确性的方法——循环不变式,对算法运行时间的简单分析,以及分治法。
循环不变式
类似于数学归纳法的一种证明算法正确性的方法。
需要证明以下三步:
- 初始化
循环的第一次迭代前,它为真。 - 保持
如果循环的某次迭代之前它为真,那么下次迭代之前它仍为真。 - 终止
再循环终止时,不变式为我们提供一个有用的性质,该性质有助于证明算法是正确的。
分治法
将原问题分解为几个规模较小但类似于原问题的子问题,递归求解这些子问题,然后合并这些子问题的解来建立原问题的解。
每层递归时,都有如下三个步骤:
- 分解
将原问题分解为几个规模较小但类似于原问题的子问题 - 解决
递归求解各个子问题,当子问题规模够小可以直接求解时,则直接求解 - 合并
合并这些子问题的解来建立原问题的解
涉及算法
点击查看实现
习题答案
思考题
Source:https://github.com/maomao9003/Introduction-to-Algorithms/blob/master/Docs/Chapter/2.算法基础.md