插入排序冲冲冲!!!

插入排序(Insertion-Sort)的算法描述是一种简单直观的排序算法,其工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。整个过程跟起牌非常像。
插入排序冲冲冲!!!_第1张图片
当我们起到第一张牌2时,2就自然而然地被我们当作基准元素了,当我们起到第二张牌4的时候,拿4和基准元素2进行比较,4比2大,就放到右边,如果第二张牌起的是1,因为1比基准元素2小,1就会被放到2的左边,依此类推,起到的每一张牌都会和前面已经排序好的牌进行比较。

(下面是插入排序的模拟图:)
插入排序冲冲冲!!!_第2张图片
那下面我们来看一下程序怎么写?

a = [2, 1, 5, 3, 0]
for i in range(1,len(a)):
    key=a[i]
    j=i-1
    while j>=0 and a[j]>key:
        a[j+1]=a[j]
        j-=1
        a[j+1]=key
print(a)

如果觉得while循环太难,也可以转为for循环:

a = [2, 1, 5, 3, 0]
for i in range(1,len(a)):
    for j in range(i-1,0,-1):
        if a[j-1]>a[j]:
            a[j-1],a[j]=a[j],a[j-1]
print(a)

插入排序相较于冒泡排序和选择排序代码有点复杂,但是效率

你可能感兴趣的:(排序算法,算法,数据结构,python)