选择排序
选择排序是一种简单直观的排序算法,它通过每次选择未排序部分的最小元素,并将其放置在已排序部分的末尾,从而逐步构建有序序列。
算法步骤:
- 在未排序部分中找到最小的元素。
- 将最小元素与未排序部分的第一个元素交换位置,将其放置在已排序部分的末尾。
- 重复步骤1和步骤2,直到所有元素都被放置到有序序列中。
示例
下面是用Python编写的选择排序算法示例:
代码语言:javascript复制def selection_sort(arr):
for i in range(len(arr)):
min_idx = i
for j in range(i 1, len(arr)):
if arr[j] < arr[min_idx]:
min_idx = j
arr[i], arr[min_idx] = arr[min_idx], arr[i]
# 测试示例
nums = [64, 25, 12, 22, 11]
selection_sort(nums)
print("排序后的数组:", nums)
在这个示例中,我们定义了一个函数selection_sort
,它接受一个列表arr
作为输入,并对其进行选择排序。我们使用两个循环来遍历未排序部分和查找最小元素的位置,然后通过交换元素的方式将最小元素放置在已排序部分的末尾。
现在让我们通过可视化展示选择排序算法的执行过程,以加深对算法的理解。
示例
代码语言:javascript复制以下是选择排序的可视化示例:
原始数组: [64, 25, 12, 22, 11]
第1次排序: [11, 25, 12, 22, 64]
第2次排序: [11, 12, 25, 22, 64]
第3次排序: [11, 12, 22, 25, 64]
第4次排序: [11, 12, 22, 25, 64]
排序后的数组: [11, 12, 22, 25, 64]
通过这个可视化示例,你可以看到选择排序算法是如何每次选择最小的元素,并将其放置在已排序部分的末尾,逐步构建有序序列的。
下集预告
这就是第六天的教学内容,关于选择排序算法的原理、示例代码以及可视化展示。如果你有任何问题,请随时留言。