关于Python排序算法-直接插入排序(Insert Sort)

关于Python排序算法-直接插入排序(Insert Sort)

#coding=utf-8

# 插入排序
'''
直接插入排序算法的原理如下:
在要排序的一组数中,假设前面(i-1) [i>=2] 个数已经是排好顺序的,
现在要把第i个数插到前面的有序数中,使得这i个数也是排好顺序的,
如此反复循环,直到全部排好顺序。
'''

def insert_sort(li):
    for i in range(1, len(li)):
        print("第%s趟" % (i))
        key = li[i]
        j = i - 1
        while j >= 0:
            if li[j] > key:
                li[j+1] = li[j]
                li[j] = key
                print("比对%s" %(li))

            j -= 1


import random
# range()函数中有一个参数,则从0开始。
# range()函数中有两个参数,则将第一个参数做为起始位,第二个参数为结束位
li = list(range(9))

#print(li)
# 将序列的所有元素随机排序
random.shuffle(li)
print("排序准备%s" % li)

insert_sort(li)
print("排序结果%s" % li)

发表回复

您的电子邮箱地址不会被公开。