📅  最后修改于: 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: |
|
第一次迭代:
键= a [2] = 13
a [1] = 2 <13
Swap, no swap |
|
第二次迭代:
键= a [3] = 5
a [2] = 13> 5
Swap 5 and 13 |
|
接下来,a [1] = 2 <13
Swap, no swap |
|
第三次迭代:
键= a [4] = 18
a [3] = 13 <18,
a [2] = 5 <18,
a [1] = 2 <18
Swap, no swap |
|
第4次迭代:
键= a [5] = 14
a [4] = 18> 14
Swap 18 and 14 |
|
接下来,a [3] = 13 <14
a [2] = 5 <14
a [1] = 2 <14
So, no swap |
|
最后,
the sorted list is |
|