排序

选择排序

选择排序的核心想法是:每一轮从未排序区间里找出最小值,再把它放到未排序区间的开头。放好之后,这个位置就不会再改变。

它不像冒泡排序那样频繁交换,相比之下,选择排序的比较次数固定,交换次数最多只有 n 次。

复杂度

  • 时间:最好、平均、最坏都是 O(n²)
  • 空间:O(1),原地排序
  • 稳定性:通常实现不稳定,因为最后的交换可能改变相同元素的相对顺序

在动画里看什么

  • 紫色:当前记录的最小值位置
  • 蓝色:正在和最小值比较的元素
  • 红色:把最小值交换到前面
  • 绿色:已经就位的有序前缀