循环不变式 (Loop invariants)
循环不变式在数学上阐述了通过循环(迭代、递归)去计算一个累计的目标值的正确性。主要用来检验算法。
循环不变式主体是不变式,是一种描述规则的表达式。其过程分三个部分:初始,保持,终止。
其实本质上就是一个思想,说明正确算法的在循环过程中总存在一个维持不变的特性。
若这个特性一直保持到循环结束,这样就可以保证算法的正确性了。
而对于一个循环表达式,包含以下三个过程:
初始化 (Initialization)
循环的第一次迭代之前,不变式为真。
It is true prior to the first iteration of the loop.
保持 (Maintenance)
循环的某次迭代之前不变式为真,下次迭代之前其仍然为真。
If it is true before an iteration of the loop, it remains true before the next iteration.
终止 (Termination)
循环终止时,不变式依然成立。
When the loop terminates, the invariant gives us a useful property that helps show that the algorithm is correct.