选择排序的程序如下:
初始化 :从数组的起始位置开始,假设第一个元素是最小值。查找最小值:
遍历数组的未排序部分,找出最小值的索引。
交换:
将找到的最小值与未排序部分的第一个元素交换位置。
缩小未排序部分:
继续对剩余的未排序部分重复以上步骤,直到整个数组排序完成。
具体步骤如下:
第一次迭代
从未排序部分找到最小值11,将其与数组的第一个元素64交换位置。
列表变为:[11, 25, 12, 22, 64]
第二次迭代
在剩下的元素[25, 12, 22, 64]中找到最小值12,将其与第二个位置的25交换。
列表变为:[11, 12, 25, 22, 64]
第三次迭代
在剩下的元素[25, 22, 64]中找到最小值22,将其与第三个位置的25交换。
列表变为:[11, 12, 22, 25, 64]
第四次迭代
在剩下的元素[25, 64]中找到最小值25,将其与第四个位置的64交换。
列表变为:[11, 12, 22, 25, 64]
第五次迭代
剩下的最后一个元素64已经是最大的,无需进一步操作。
列表变为:[11, 12, 22, 25, 64]
最终,整个数组按照从小到大的顺序排列完成。
选择排序的时间复杂度为O(n²),适合于小规模数据的排序。其优点是实现简单,与输入数据无关,但在效率上不如其他更高效的排序算法,如快速排序和归并排序。