我正在学习数据结构和算法的基础课程,我们使用的书是 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] 不是按排序顺序排列的,但当迭代结束时它是有序的。
我在这里想念什么?