一、循环不变式
1、基本原理
初始化:在循环的第一轮迭代前是正确的;
保持:如果在循环的某一次迭代开始之前是正确的,那么在下一次迭代开始之前,也是正确的;
终止:当循环结束,不变式给了我们一个有用的性质。
当头两个性质成立时,就能保证循环不变式在循环的每一轮迭代开始之前,都是正确的,有关循环不变式的第三项可能是最重要的,因为我们是用不变式来证明算法的正确性。
就是个思想,说明正确算法的循环过程中总是存在一个维持不变的特性,这个特性一直保持到循环结束乃至算法结束,这样就可以保证算法的正确了。
比方说插入排序,算法每次循环后,前n个数一定是排好序的(n为已经循环的次数)。由于这个特性一直成立,到算法结束时,所有N个数一定是排好序的。
关于这个思想,很多算法的正确性都是由循环不变性保证的
比方说插入排序,算法每次循环后,前n个数一定是排好序的(n为已经循环的次数)。由于这个特性一直成立,到算法结束时,所有N个数一定是排好序的。
关于这个思想,很多算法的正确性都是由循环不变性保证的