1. 初始化。 循环初次执行的时候不变式为真。 确立一个不变式。2. 保持。 如果在某次迭代开始的时候以及循环体执行的时候,不变式为真,那么循环体执行完毕的时候不变式依然为真。 每次循环完成和过程中进行检验。3. 循环能够终止,并且可以得到期望的结果。
在算法编写过程中为了对算法的每一步进行检验,经常需要用到ASSERT断言。
算法导论和编程珠玑中都有提及,给我们在算法的编写和实现的时候提供一定的保证。