插入排序(直接插入排序)

定义

将无序区的元素逐个抽取,放到有序区。有序区初始时,会有一个随机从列表中拿取的元素,作为比较。
当从无序区拿一个元素后,就和有序区的元素逐个做比较,放到合适的位置。

def insert_sort(li):
    for i in range(1, len(li)):
        temp = li[i]   # 无序区抽取一个元素
        j = i-1        # 因为i是从1开始,所以,j就是第0个元素的下标。也是有序区的唯一元素
        while j >= 0 and li[j]>temp:  # 如果temp更小,则被比较的数需要往后移一位
            li[j+1] = li[j]  # 这里就是往后移动一位
            j -= 1  # 然后在比较下一个有序区的元素。因为有序区的元素是逐渐增加的。
        li[j + 1] = temp  # 最后需要把无序区抽取的元素放入有序区的位置
posted @ 2022-04-26 14:41  尘。哀  阅读(64)  评论(0)    收藏  举报