📜  DAA-插入排序

📅  最后修改于: 2021-01-12 03:39:30             🧑  作者: Mango


插入排序是一种非常简单的方法,可以对数字进行升序或降序排序。该方法遵循增量方法。可以将其与在玩游戏时如何对牌进行排序的技术进行比较。

需要排序的数字称为。这是插入排序方法的算法。

Algorithm: Insertion-Sort(A) 
for j = 2 to A.length 
   key = A[j] 
   i = j – 1 
   while i > 0 and A[i] > key 
      A[i + 1] = A[i] 
      i = i -1 
   A[i + 1] = key 

分析

该算法的运行时间在很大程度上取决于给定的输入。

如果给定的数字已排序,则此算法将在O(n)时间内运行。如果给定数字是相反的顺序,则该算法将在O(n 2 )时间内运行。

Unsorted list:

2 13 5 18 14

一次迭代:

键= a [2] = 13

a [1] = 2 <13

Swap, no swap

2 13 5 18 14

第二次迭代:

键= a [3] = 5

a [2] = 13> 5

Swap 5 and 13

2 5 13 18 14

接下来,a [1] = 2 <13

Swap, no swap

2 5 13 18 14

第三次迭代:

键= a [4] = 18

a [3] = 13 <18,

a [2] = 5 <18,

a [1] = 2 <18

Swap, no swap

2 5 13 18 14

4迭代:

键= a [5] = 14

a [4] = 18> 14

Swap 18 and 14

2 5 13 14 18

接下来,a [3] = 13 <14

a [2] = 5 <14

a [1] = 2 <14

So, no swap

2 5 13 14 18

最后,

the sorted list is

2 5 13 14 18