排序算法:插入排序

思想:

  - 维持原地排序

  - 整个列表分为2部分,做部分为排序好的;右边为尚未排序的,

  - 每次抽取右边的第一张牌,与左边的牌进行对比。

代码:

#!/usr/bin/env python
#-*- coding:utf-8 -*-

'''
- 保持原地排序
- 摸牌的次数
- 如何移动牌

'''

def insert_sort(li):
    for i in range(1, len(li)): # 摸牌的次数
        for j in range(i, 0, -1): # 在排好序的左边,将抽到的牌,从右向左比较
            if li[j] < li[j-1]:
                li[j],li[j-1] = li[j-1],li[j]

        #print('第{}次排序: {}'.format(i, li))


import random
li = list(range(1000))
random.shuffle(li)
print(f'原始列表为:{li}')
insert_sort(li)
print(li) 
原文地址:https://www.cnblogs.com/lmt921108/p/14070001.html