📅  最后修改于: 2023-12-03 15:25:58.164000             🧑  作者: Mango
插入排序是一种简单直观的排序算法。它的基本思想是将待排序的记录按其关键字值的大小一个一个插入到一个已经排好序的有序序列中,直到所有的记录都插入到有序序列为止。
具体步骤如下:
下面是插入排序的Python实现:
def insertion_sort(arr):
for i in range(1, len(arr)):
key = arr[i]
j = i - 1
while j >= 0 and arr[j] > key:
arr[j + 1] = arr[j]
j -= 1
arr[j + 1] = key
return arr
其中,arr是待排序的数组,函数首先从第一个元素开始,依次将每个元素插入到已排序的序列中。
可以用如下方式调用函数:
arr = [12, 11, 13, 5, 6]
print(insertion_sort(arr))
运行程序,输出结果如下:
[5, 6, 11, 12, 13]
可以看到,经过一次插入排序后,原数组已经被排好序了。
插入排序的时间复杂度为O(n^2)。
在最坏情况下,排序算法的比较次数和交换次数均为n(n-1)/2。
在最好情况下,排序算法的比较次数为n-1,交换次数为0。
因此,插入排序适用于比较小的数组排序,对于大规模的数据排序效率较低。
插入排序是一种简单易懂的排序算法,通过将待排序的元素一个一个地插入到已经排好序的序列中,最终将整个序列排序。
虽然插入排序的时间复杂度较高,但对于小规模的数据排序效果不错。同时,插入排序的代码实现较为简单,容易理解和掌握。