首页 > 技术文章 > 插入排序

chongdongxiaoyu 2019-10-16 13:55 原文

 

 

def insert_sort(li):
    for i in range(1,len(li)):
        # i表示摸到的牌的位置
        tmp = li[i]
        j = i - 1   # j是当前手里用来比较的牌
        while True:
            if j >= 0 and li[j] > tmp:  # 如果j合法并且这张牌比摸到的牌大
                li[j+1] = li[j]         # 往后看
                j -= 1                  #往前看
            else:                       #如果手里用来比较的牌比摸到的牌小或者或者j==-1
                li[j+1] = tmp           # 放牌
                break

 

def insert_sort_2(li):
    for i in range(1,len(li)):
        # i表示摸到的牌的位置
        tmp = li[i]
        j = i - 1   # j是当前手里用来比较的牌
        while j >= 0 and li[j] > tmp:   # 如果j合法并且这张牌比摸到的牌大
                li[j+1] = li[j]         # 往后看
                j -= 1                  # 往前看
        li[j+1] = tmp                   # 放牌

 

推荐阅读