插入排序(insertionSort)

  • 将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列

  • 从头到尾依次扫描未排序序列将扫描到的每个元素插入有序序列的适当位置。(如果待插入的元素与有序序列中的某个元素相等,则将待插入元素插入到相等元素的后面。)

  • 动画演示

  • python实现代码

def insertionSort(arr):
    for i in range(len(arr)):
        preIndex = i-1       #preIndex之前地址
        current = arr[i]     #current现在的
        while preIndex >= 0 and arr[preIndex] > current:
            arr[preIndex+1] = arr[preIndex]
            preIndex-=1
        arr[preIndex+1] = current
    return arr

alist=[4,5,2,5,8574,54,21,574]
ret=insertionSort(alist)
print(ret)

posted @ 2021-07-21 19:06  刘家小仙女  阅读(145)  评论(0编辑  收藏  举报