1

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

我在这里想念什么?

4

1 回答 1

5

A[1.. j-1] 不是排序顺序,但当迭代结束时它是。

假设 的值j最初从 2 开始,A[1.. j-1]将只包含一个长度为 1 的数组,根据定义,它是排序的。

于 2012-06-05T16:01:28.080 回答