码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2018-11-06 19:43:35      阅读:104      评论:0      收藏:0      [点我收藏+]

标签:pre   img   直接插入   for   raw   分享   技术分享   排序   图片   

插入排序

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

标签:pre   img   直接插入   for   raw   分享   技术分享   排序   图片   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!