插入排序算法是一种简单直观的排序算法,它的基本思想是将一个元素逐个插入到已排序的序列中,从而构建出完整的有序序列。
插入排序算法的时间复杂度为O(n^2)
,其中n为待排序序列的长度。虽然插入排序在大规模数据上可能不如快速排序或归并排序等算法快速,但对于小规模或部分有序的数据,插入排序具有稳定性和简单性的优势。
def insertion_sort(arr):
n = len(arr)
for i in range(1, n):
key = arr[i]
j = i - 1
while j >= 0 and key < arr[j]:
arr[j + 1] = arr[j]
j -= 1
arr[j + 1] = key
# 示例用法
arr = [12, 11, 13, 5, 6]
insertion_sort(arr)
print("排序后的数组:", arr)
这段代码定义了一个名为insertion_sort
的函数,用于对输入的数组进行插入排序。排序过程中,从第二个元素开始(索引为1)
,将当前元素与已排序的部分进行比较并插入正确的位置,直到整个数组排序完成。