插入排序:首先假设队列左边的元素是已经排序过的元素
依次遍历已排序过的元素右边的元素,将该元素与左边已排序的元素做比较,这样左侧已排序的元素个数就会依次增加
重复第二步,直到所有的元素全部排序完成。
插入排序的代码实现如下:
def insertion_sort(arr):
length = len(arr)
i = 1 # 从位置1开始向右遍历,因为我们假设位置0上的元素(即最左边的元素已经排好了序)
while i < length:
j = i # j表示当前已排好序的数字的结束位置
while j > 0:
if arr[j-1]>arr[j]:
arr[j-1],arr[j]=arr[j],arr[j-1]
j = j - 1 # 持续遍历已经排好序的部分
i = i + 1
return arr
data = [6,5,3,1,8,7,2,4]
a = insertion_sort(data)
print(a)
注:python中不支持 ++ ,–操作
运行结果如下:
[1, 2, 3, 4, 5, 6, 7, 8]
Process finished with exit code 0