- 选择排序是一种简单的排序算法,它的基本思想是从未排序的数组中选择最小(或最大)的元素,并将其放在已排序的数组的末尾,重复这个过程直到所有元素都被排序。
- 选择排序的算法流程如下:
- 从未排序的数组中选择最小(或最大)的元素,并将其放在已排序的数组的末尾。
- 将未排序的数组中除已选中的最小(或最大)元素之外的所有元素与已排序的数组中的元素进行比较,将未排序数组中比已排序数组中元素小的(或大的)元素放在已排序数组的末尾。
- 重复上述步骤,直到整个数组都被排序。
- 选择排序的时间复杂度为O(n^2),其中n是数组的长度。尽管选择排序不是最快的排序算法,但它的实现简单,可以在小规模的数据上进行高效的排序。
- 以下是一个使用Python实现的选择排序算法测试程序:
def selection_sort(arr):
n = len(arr)
for i in range(n):
min_index = i
for j in range(i+1, n):
if arr[j] < arr[min_index]:
min_index = j
arr[i], arr[min_index] = arr[min_index], arr[i]
arr = [3, 5, 1, 4, 2]
selection_sort(arr)
print(arr)
[1, 2, 3, 4, 5]
- 在这个示例中,我们定义了一个名为selection_sort的函数,该函数接受一个列表作为参数,并使用选择排序算法对其进行排序。具体实现过程如下:
- 遍历整个数组,从第一个元素开始。
- 在剩余的未排序的元素中找到最小的元素。
- 将最小的元素与未排序部分的第一个元素交换位置。
- 重复上述步骤,直到整个数组已排序。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/d19fdb8f6c10ac033a123a8198e9c882.png)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/4b184c209595601828a8095bb8a9d73c.png)
微信Alt+A截屏工具
pycharm 2019.3