当然,下面是一个插入排序算法在顺序表(数组)上的实现,使用Python语言编写:
def insertion_sort(arr):
"""
对数组arr进行插入排序
"""
# 遍历从1到数组长度的所有元素
for i in range(1, len(arr)):
key = arr[i] # 当前要插入的元素
j = i - 1
# 将大于key的元素向后移动一位
while j >= 0 and key < arr[j]:
arr[j + 1] = arr[j]
j -= 1
# 将key放到正确位置
arr[j + 1] = key
# 示例
arr = [12, 11, 13, 5, 6]
insertion_sort(arr)
print("排序后的数组:", arr)
这段代码定义了一个`insertion_sort`函数,它接受一个数组`arr`作为参数,并对其进行插入排序。插入排序的基本思想是将数组分为已排序段和未排序段,每次从未排序段中取出一个元素,将其插入到已排序段的适当位置,以保持已排序段的有序性。在上述代码中,通过遍历数组(从第二个元素开始,因为假设第一个元素是已排序的),并将当前元素(`key`)与它之前的元素进行比较和移动,以实现排序。