插入排序是一种简单直观的排序算法,它通过构建有序序列,对未排序的元素逐个进行插入,从而达到排序的目的。
下面是用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
# 测试示例
nums = [64, 25, 12, 22, 11]
insertion_sort(nums)
print("排序后的数组:", nums)
在这个示例中,我们定义了一个函数insertion_sort
,它接受一个列表arr
作为输入,并对其进行插入排序。
我们从第二个元素开始,将其视为已排序序列,然后依次取出未排序元素,通过比较和移动已排序元素来找到合适的位置,最后将取出的元素插入到该位置。
现在让我们通过可视化展示插入排序算法的执行过程,以加深对算法的理解。
以下是插入排序的可视化示例:
原始数组: [64, 25, 12, 22, 11]
第1次排序: [25, 64, 12, 22, 11]
第2次排序: [12, 25, 64, 22, 11]
第3次排序: [12, 22, 25, 64, 11]
第4次排序: [11, 12, 22, 25, 64]
排序后的数组: [11, 12, 22, 25, 64]
通过这个可视化示例,你可以看到插入排序算法是如何逐步构建有序序列的。
在每次排序中,一个元素被插入到已排序序列的合适位置,直到所有元素都被插入到有序序列中。
这就是第五天的教学内容,关于插入排序算法的原理、示例代码以及可视化展示。如果你有任何问题,请随时留言。