进阶:python3实现 插入排序

一图胜千言,插入排序的核心逻辑如下:

  • 将数据分成两半,前一半是已排好序的,后一半是待排序的
  • 每次取后一半中的第一个数,在已排序的一半中,逆序依次比较,找到要插入的位置
  • 记录插入的位置,在最后判断是否需要插入即可

实现代码:


def insertionSort(a:list):
    for i in range(1,len(a)):
        value = a[i]
        insert_index = -1

        for j in range(i-1,-1,-1):
            if  value< a[j]:
                a[j+1] = a[j]
                insert_index = j
            else:
                break
        if insert_index !=-1:
            a[insert_index] = value
    
    return a

思考:

为什么插入排序比冒泡排序更常用

关键在于赋值操作,冒泡排序需要3次,而插入排序只需要1次

原文地址:https://www.cnblogs.com/yeni/p/11162337.html