编辑代码

# coding:utf-8

arr = [9, 1, 10, 4, 18]


def insert_sort(arr, k):
    if k == 1:
        return arr
    insert_sort(arr, k - 1)
    # 出栈时 当前k是第二个
    if arr[k - 2] > arr[k - 1]:
        # 如果:第0个大,第1个小,则让第0个向后移动
        # 保存第1个的数据
        temp = arr[k - 1]
        i = k - 2
        # 保证下标遍历到最前面的一个,且只移动比第一个小的
        while i >= 0 and arr[i] > temp:
            arr[i + 1] = arr[i]
            i -= 1

        arr[i + 1] = temp


insert_sort(arr, len(arr))

print(arr)