选择排序

每次从未排序区域选择最小元素放到已排序区域的末尾

可视化演示

步骤: 0 / 0时间复杂度: O(n²)空间复杂度: O(1)

选择排序可视化

未排序
已排序
当前位置
最小元素
正在比较

算法步骤

步骤 1: 从未排序区域找到最小元素

步骤 2: 将最小元素与未排序区域的第一个元素交换

步骤 3: 将交换后的元素标记为已排序

步骤 4: 重复步骤1-3,直到所有元素排序完成

算法特性

优点:
  • • 交换次数最少
  • • 实现简单
  • • 空间复杂度低
  • • 适合小数据集
缺点:
  • • 时间复杂度较高 O(n²)
  • • 不稳定排序
  • • 不适合大数据集
  • • 性能不如其他排序算法

复杂度分析

最好情况
O(n²)
平均情况
O(n²)
最坏情况
O(n²)
空间复杂度
O(1)

应用场景

适用场景:
  • • 小数据集排序
  • • 交换成本高的环境
  • • 内存受限的环境
  • • 教学演示
不适用场景:
  • • 大数据集排序
  • • 需要稳定排序
  • • 性能要求高的场景
  • • 实时排序需求

控制面板

0 / 0 步骤