Developer Toolbox

选择排序

找出剩下的最小值,把它交换到下一个位置。交换次数很少,但比较次数总是一样多。

  • Ω(n²)
  • Θ(n²)
  • O(n²)
  • O(1)
  • 否
  • 是
  • 比较中
  • 移动中
  • 当前最小值
  • 已就位
0 / 399 步

比较次数:0 · 已比较的对:0 / 276 已比较(越深越频繁) 正在比较

比较次数 交换次数

点击播放,线条会显示排序过程中代价如何增长

点击播放,或一步一步查看。

空格键:播放或暂停。左右方向键:单步移动。Home 和 End 键:跳转。

试试看: 选一个逆序的列表。比较次数和其他任何列表完全一样。

工作原理

在还没排好的部分中找出最小值,把它和这部分的第一个值交换,这样又有一个值就位。即使列表本来就排好了,它也每次都要检查剩下的所有值。

适用场合

适合移动数据代价高、读取数据代价低的情况,因为每个位置最多只交换一次。其他情况下,在简单的方法里插入排序更好。