排序之插入排序

守給你的承諾、 提交于 2019-11-28 20:42:30
# 插入排序时间复杂度:O(n**2)代码:
# 插入排序
def insert_sort(li):
    for i in range(len(li)):  # 摸到的牌的下标
        tmp = li[i]  # 记录摸到的牌
        j = i - 1  # 手里的牌的下标
        while j >= 0 and tmp < li[j]:
            li[j + 1] = li[j]
            j -= 1
        li[j + 1] = tmp
        print(li)

思路:

while j >= 0 and tmp < li[j]:
            li[j + 1] = li[j]
            j -= 1在找摸到的牌要插入的位置,每当摸到的牌比手里的牌小,就会找到摸到的牌要插入的位置,找到后将摸到的牌插入比摸到牌小的牌的前一个位置(j+1)
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!