首页 > 编程语言 > 详细

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

时间:2018-11-06 19:03:18      阅读:150      评论:0      收藏:0      [点我收藏+]

插入排序

思想:类似于抽扑克牌,共有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三人组之插入排序

原文:https://www.cnblogs.com/lishi-jie/p/9916961.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!