python 实现插入排序算法



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)。在上面的代码中,我们通过遍历数组中的每个元素(从第二个元素开始),将其与它之前的元素进行比较,如果之前的元素比它大,则将之前的元素向后移动一位,直到找到当前元素应该插入的位置。