📅  最后修改于: 2023-12-03 15:19:29.849000             🧑  作者: Mango
插入排序(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),即只需要常量级别的额外空间。
插入排序虽然算法简单,但是在处理大规模数据时效率较低。对于小规模数据,插入排序是一种不错的排序算法。同时,插入排序是一种稳定排序算法,只有相邻元素才会进行比较和数据交换。