python 插入排序算法代码实现

#python insert_sort
list=[20,15,17,3,6,8,14,19,11]
def insert_sort(list):

    for i in range(1,len(list)):
        key=list[i]
        j=i-1
        while j>=0:
            if key<list[j]:
                list[j+1],list[j]=list[j],key
                j=j-1
            else:
                break
        if j<0:
            list[0]=key

insert_sort(list)
print(list)

  这里呢,就先扔出来一串代码,有需求的呢,就直接带走,后面呢也会有一些分析了。

  插入排序最经典的案例呢,就是扑克牌整理。现在我们手里拿了一把牌,当然这些牌呢,是一次排列的,是不是有序就不知道了。首先看左起第一张牌,如果只有这一张牌呢,那他肯定是有序的了,不用再考虑,接着看第二章牌,把他拿出来,但是它原来的位置呢要空着,把他和他前面的一张牌比较,当然就是第一张牌,如果他比第一张牌小,那么把第一张牌往后移动一个位置,放到原来第二张牌的位置,接着呢,我们继续那第二张牌往前比较,你会发现没有牌了,那么你就把这张牌放到第一个位置上。后面第三张牌也是一样了,先和他前面的一张牌比较,如果比前面的小呢就吧前面的牌往后移动,然后把这场牌插入到这个位置,如果大呢,就不要做什么操作啦。这个呢就是插入排序的一个思想了。有需要的可以直接去翻看算法导论这本书,第二章算法基础里面就有介绍。本人也是极力推荐这本书了。

 

posted @ 2018-01-27 21:48  Python小哥  阅读(150)  评论(0)    收藏  举报