只是想知道以下是否正确。我试图使用插入排序算法来解决这个问题。我试图尝试下面的数组,并提出了这些答案。如果这是正确的,请你告诉我,如果我有正确的理解。非常感谢。
反向排序序列:
15, 12, 10, 4
12, 15, 10, 4
12, 10, 15, 4
12, 10, 4, 15
10, 12, 4, 15
10, 4, 12, 15
10, 4, 12, 15 (no swap)
4, 10, 12, 15
答案 0 :(得分:0)
带注释的序列:
15, 12, 10, 4 start
12, 15, 10, 4 1st outer loop [0:1]
12, 10, 15, 4 2nd outer loop [1:2]
10, 12, 15, 4 [0:1]
10, 12, 4, 15 3rd outer loop [2:3]
10, 4, 12, 15 [1:2]
4, 10, 12, 15 [0:1]
答案 1 :(得分:0)
As stated in LECTURE NOTES ON DATA STRUCTURE on page 176
假设您想按升序排列元素,如上图所示。 然后,
步骤1:将数组的第二个元素与元素进行比较 出现在它之前(在这种情况下只有第一个元素)。如果 第二个元素小于第一个元素,第二个元素是 插入第一个元素的位置。第一步后,前两个 数组的元素将被排序。
步骤2:将数组的第三个元素与元素进行比较 出现在它之前(第一和第二个元素)。如果第三个元素是 小于第一个元素,它插入第一个位置 元件。如果第三个元素大于第一个元素但是更小 比第二个元素,它插入第二个元素的位置。 如果第三个元素大于两个元素,则保留在 这个位置。第二步后,数组的前三个元素 将被分类。
步骤3:类似地,将数组的第四个元素与数据进行比较 出现在它之前的元素(第一,第二和第三元素)和 应用相同的过程,并将该元素插入 适当的位置。第三步后,数组的前四个元素 将被分类。