def insertion_sort(arr):
# 遍历从1到数组长度的所有元素
for i in range(1, len(arr)):
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("排序后的数组:")
for i in range(len(arr)):
print("%d" %arr[i],end=" ")
这段代码实现了插入排序算法。插入排序的基本思想是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。在上面的代码中,我们通过遍历数组中的每个元素(从第二个元素开始),将其与它之前的元素进行比较,如果之前的元素比它大,则将之前的元素向后移动一位,直到找到当前元素应该插入的位置。