【发布时间】:2012-06-05 15:58:56
【问题描述】:
我正在学习数据结构和算法的基础课程,我们使用的书是 CLRS 的开创性著作。我在理解循环不变量时遇到了一些麻烦,如第 2.1 章所述:插入排序。
这本书说:
在第 1-8 行的 for 循环的每次迭代开始时,子数组 A[1..j -1] 由最初在 A[1..j-1] 中的元素组成,但按排序顺序.
现在,这让我很困惑。为什么在第一次迭代开始时会保持这种状态? 假设要排序的数组看起来像 { 5, 2, 4, 6, 1, 3 }。现在,当 for 循环的第一次迭代开始时, A[1.. j-1] 不是排序顺序,当迭代结束时它是。
我在这里错过了什么?
【问题讨论】:
标签: algorithm loops insertion-sort invariants loop-invariant