循环不变式用于理解和证明算法的正确性。实际上,循环不变式并不是狭义上的一个式子,而是一个在命题,一个在算法的起始状态、运行过程中和算法结束时始终保持为真的一个命题。通过下文中的例子可以更加清晰的认识到循环不变式的意义,下面是循环不变式的三条性质:
初始化:循环的第一次迭代之前,它为真。
保持:如果循环的某次迭代之前它为真,那么下次迭代之前它仍为真。
终止:在循环终止时,不变式为我们提供一个有用的性质,该性质有助于证明算法时正确的。
注意:循环不变式的前两条性质类似于数学归纳法,证明了一个基本情况和一个归纳步。此外,终止性不同于数学归纳法的做法,在归纳法中,归纳步是无限地使用的,这里当循环终止的时候,归纳随之终止。
介绍链接:
算法导论学习笔记1_循环不变式_WavenZ的博客-CSDN博客_循环不变式
相关理解题型:
力扣 35
力扣 剑指offer 旋转数组的最小数字(有重复)
while循环的判断,
结束时,是否满足需求,来确定是否while循环时加不加等号。