一、循环不变式定义
在for循环(循环变量为i,从1开始)的每次迭代开始,包含元素A[0,..,j-1]长度为j的子数组构成了已经排好序的一个排列。现在循环开始就要处理一个新的元素,怎么处理不管,反正我们就是要求在处理前和处理后,子数组中的元素都是已排好序的。我们把A[0,..,j-1]的这种性质称为循环不变式。
循环不变式三条性质:
- 初始化:首先证明在第一次循环之前,循环不变式成立。
- 保持:其次证明每次迭代保持循环不变式。
- 终止:最后研究在循环终止时发生了什么,循环不变式是否成立。
在for循环(循环变量为i,从1开始)的每次迭代开始,包含元素A[0,..,j-1]长度为j的子数组构成了已经排好序的一个排列。现在循环开始就要处理一个新的元素,怎么处理不管,反正我们就是要求在处理前和处理后,子数组中的元素都是已排好序的。我们把A[0,..,j-1]的这种性质称为循环不变式。
循环不变式三条性质: