算法学习笔记四一插入排序

什么是插入排序

插入排序可理解为扑克牌摸牌的过程,手中的牌为有序序列,然后随机摸一张牌,根据牌的大小插入到有序序列对应的位置。算法时间复杂度为O(n^2)

算法原理

  1. 默认列表第一个元素为基准,从第二个元素和第一个元素进行比较,并放入到相应位置。
  2. 此时前两个元素是一个有序数组,后n-2个是无序的, 再拿第三个元素依次和前两个进行比较,并放入到响应位置。
  3. 以此类推...

示例代码

# 升序排序
def insert_sort(list):
    for i in range(1, len(list)): # i代表元素下标
        j = i - 1  # 无序区元素前一个元素
        temp = list[i] #记录待排序元素的值
        while j >= 0 and list[j] > temp: # 依次和前面有序列表中元素进行比较
            list[j + 1] = list[j] # 若list[i]比前一个元素小,则元素向后挪动
            j -= 1
        list[j + 1] = temp
        print(list)
    return list
posted @ 2023-12-15 23:10  Monster_bird  阅读(15)  评论(0)    收藏  举报