我正在阅读CLRS的“算法简介”。在第二章中,作者提到了“循环不变式”。什么是循环不变式?
用简单的话来说,循环不变式是某个谓词(条件),对于循环的每次迭代都适用。例如,让我们看一个简单的for循环,如下所示:
for
int j = 9; for(int i=0; i<10; i++) j--;
在此示例中,(对于每次迭代)都为true i + j == 9。一个较弱的不变式也是如此 i >= 0 && i <= 10。
i + j == 9
i >= 0 && i <= 10