Python—插入排序算法

Posted zivli

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python—插入排序算法相关的知识,希望对你有一定的参考价值。

# 插入排序,时间复杂度O(n²)
def insert_sort(arr):
    """
    插入排序;以朴克牌为例,从小到大排序。摸到的牌current与手里的每张牌进行对比,
    手里的牌大于current,则手里的牌往后移;手里的最后一张牌小于current,current最大,结束循环。
    :param arr:
    :return:
    """
    for i in range(1, len(arr)):  # 摸到的牌的index
        # 摸到的牌
        current = arr[i]
        # 手里最后一张牌的index
        pre_index = i - 1
        while pre_index >= 0 and arr[pre_index] > current:
            arr[pre_index + 1] = arr[pre_index]
            # 继续和前一张牌进行比较
            pre_index -= 1
        # 手里的最后一张牌小于current,current最大
        arr[pre_index + 1] = current
    return arr


num = [4, 5, 3, 7, 6, 9, 8, 10]
print(insert_sort(num))

 

以上是关于Python—插入排序算法的主要内容,如果未能解决你的问题,请参考以下文章

python 算法——插入排序

Python八大算法的实现,插入排序希尔排序冒泡排序快速排序直接选择排序堆排序归并排序基数排序。

Python|理解折半插入排序

Python的冒泡排序和插入排序算法

Python版插入排序算法

八大排序算法---基于python