📜  python中的插入排序(1)

📅  最后修改于: 2023-12-03 15:19:29.849000             🧑  作者: Mango

Python中的插入排序

介绍

插入排序(Insertion Sort)是一种简单直观的排序算法,它的工作原理是将一个记录插入到已排序好的有序表中,从而得到一个新的、记录数增加1的有序表。

原理

插入排序的原理是将数组分为已排序区间和未排序区间,一开始已排序区间只有一个元素,然后每次取未排序区间的第一个元素插入到已排序区间中适当位置,使之成为新的已排序区间,重复直至未排序区间为空。

代码示例

以下是Python实现的插入排序代码:

def insertionSort(arr):
    for i in range(1, len(arr)):
        # 记录当前元素
        current = arr[i]
        # 从当前元素往前搜索
        j = i - 1
        while j >= 0 and arr[j] > current:
            # 如果前面的元素比当前元素大,则后移一位
            arr[j + 1] = arr[j]
            j -= 1
        # 将当前元素插入到正确的位置
        arr[j + 1] = current
时间复杂度

插入排序的时间复杂度为O(n^2),其中n为数组的长度。当数组已经排好序时,时间复杂度为O(n)。

空间复杂度

插入排序的空间复杂度为O(1),即只需要常量级别的额外空间。

总结

插入排序虽然算法简单,但是在处理大规模数据时效率较低。对于小规模数据,插入排序是一种不错的排序算法。同时,插入排序是一种稳定排序算法,只有相邻元素才会进行比较和数据交换。