插入排序算法,使用小数组

时间:2017-11-20 11:42:41

标签: java arrays algorithm sorting insertion

只是想知道以下是否正确。我试图使用插入排序算法来解决这个问题。我试图尝试下面的数组,并提出了这些答案。如果这是正确的,请你告诉我,如果我有正确的理解。非常感谢。

反向排序序列:

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

2 个答案:

答案 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:类似地,将数组的第四个元素与数据进行比较   出现在它之前的元素(第一,第二和第三元素)和   应用相同的过程,并将该元素插入   适当的位置。第三步后,数组的前四个元素   将被分类。