算法之LOWB三人组之插入排序

Posted lishi-jie

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法之LOWB三人组之插入排序相关的知识,希望对你有一定的参考价值。

插入排序

思想:类似于抽扑克牌,共有8张扑克牌,手里默认有一张,桌面上有7张,我们每次从桌面上抽一张和手里的牌进行比较,如果比手里的牌大,则直接放到手里的牌的后面,如果比手里的牌小,则放到手里的牌的前面,保证你放的每一次都会产生一个有序区。当牌完的时候,这8张牌也就排好了顺序。这就是插入排序

时间复杂度为O(n^2)

def insert_sort(li):
    for i in range(1, len(li)):
        tmp = li[i]  # 摸到的牌存一个变量中
        j = i - 1  # 模到的牌的前一位的下标
        # 当手里的牌比摸到的大的时候
        while li[j] > tmp and j >= 0:
            # 值向右移一位,
            li[j+1] = li[j]
            # 同时j的下标已经是tmp的下标,还要再上前一位
            j -= 1
        # 如果摸到的牌比手里的大,那么直接插入j的后一位
        li[j+1] = tmp
        print(li)
li = [3,2,4,1,5,7,9,6,8]
输出结果:

技术分享图片

以上是关于算法之LOWB三人组之插入排序的主要内容,如果未能解决你的问题,请参考以下文章

算法排序-lowB三人组

算法 排序lowB三人组 冒泡排序 选择排序 插入排序

排序算法lowb三人组-插入排序

算法1-排序LowB三人组

排序算法lowb三人组-选择排序

lowB 三人组