- 工作原理
- 选择排序将数组分为两部分
- 一部分是已经排好序的、另一部分是未排序的
- 每一次循环在未排序的数组中选择一个最小元素将其放入到已排序的数组内
- 重复上述步骤,直到整个数组有序
- 流程
- 红色表示已排序的数组
- 蓝色表示当前最小元素被交换的索引位置
- 代码演示
- 优化方式
- 减少了交换次数,每轮先选择最小的元素
- 在每轮的最后在进行交换元素
- 对比冒泡排序
- 二者的时间复杂度都为O(n2)
- 在通常情况下选择排序的速度要比冒泡排序快,因为减少了交换次数
- 在有序度高的集合中,冒泡排序优于选择排序
- 冒泡排序属于稳定排序算法,选择排序属于不稳定排序算法