4.插入排序

# 原理:首先索引从1开始,每执行完一轮加1。
# 每一轮都从遍历的索引位置,按照索引减小的方向,将每两个相邻的元素进行比较,进行排序
# 因此,当索引为1,保证索引为0,1的元素是有序的
# 索引为2,保证索引为0,1,2的元素是有序的
# 最终执行完所有轮之后,保证所有元素都是有序的

import random
def insert_sort(arr):
    for i in range(1, len(arr)):
        j = i - 1
        while j >= 0 and arr[j] > arr[j+1]:
            arr[j], arr[j+1] = arr[j+1], arr[j]
            j -= 1


arr = list(range(20))

random.shuffle(arr)
print(arr)  # [16, 7, 1, 18, 2, 3, 14, 19, 10, 6, 11, 12, 17, 15, 8, 13, 4, 5, 9, 0]

insert_sort(arr)
print(arr)  # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]

  

猜你喜欢

转载自www.cnblogs.com/traditional/p/9352374.html