📅  最后修改于: 2023-12-03 15:11:16.883000             🧑  作者: Mango
插入排序是一种简单的排序算法,在处理小规模数组和部分有序数组时效率很高。其原理是将一个待排序的元素插入到正确的位置,使得前面的元素都小于等于它,后面的元素都大于等于它。这种排序方法可以通过循环和递归两种方式实现,但通常循环方式更加高效。
该Python程序实现了插入排序算法,可以对任意类型的数组进行排序,排序方式默认是升序排列。
def insertion_sort(arr):
"""
插入排序算法
Args:
arr: 待排序的数组
Returns:
排序后的数组
"""
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
程序使用了Python的for循环和while循环实现了插入排序算法,时间复杂度为O(n^2)。其中,for循环遍历数组,while循环将待排序元素插入到合适的位置。
arr = [3, 1, 4, 2, 5]
print(insertion_sort(arr)) # [1, 2, 3, 4, 5]
arr = ["c", "a", "b"]
print(insertion_sort(arr)) # ['a', 'b', 'c']
使用示例演示了如何对数字数组和字符数组进行排序,并输出排序后的结果。
插入排序是一种简单但实用的排序算法,该Python程序实现了插入排序算法,并可以对任意类型的数组进行排序。大家可以用这个程序作为模板,实现自己的排序算法。