循环不变式的理解

看算法导论的时候看到了一个概念,循环不变式。循环不变式(Loop invariant)主要用来帮助我们理解算法的正确性。对于循环不变式,必须证明它的三个性质:

初始化:它在循环的第一轮迭代开始之前,应该是正确的。

保持:如果在循环的某一次迭代开始之前它是正确的,那么,在下一次迭代开始之前,它也应该保持正确。

终止:当循环结束时,不变式给了我们一个有用的性质,它有助于表明算法是正确的。


与数学归纳法很相似。在数学归纳法中,要证明某一性质是成立的,必须首先证明其基本情况和一个归纳步骤都是成立的。这儿,证明不变式在第一轮迭代开始之前是成立的,就有点类似于归纳法中对基本情况的证明。证明不变式在各次迭代之间保持成立,就有点类似于归纳法中对归纳步骤的证明。有关循环不变式的第三项性质可能是最重要的,因为我们主要是用不变式来证明算法正确性的。此外,它与数学归纳法的常见用法也是不同的,在归纳法中,归纳步骤是无穷地使用的,在这儿,当循环结束时,即终止“归纳”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值