Toptal连接了前3%的 自由开发人员 世界各地.

选择排序

动画,代码,分析,并讨论了4个初始条件的选择排序.

使用方法: 新闻 “玩”,或选择  玩  button.

所有玩
播放动画
随机
播放动画
近排序
播放动画
逆转
播放动画
一些独特的

算法

对于I = 1:n,
    k = i
    for j = i+1:n, if a[j] 

讨论

从这里提供的比较中,可以得出这样的结论:永远不应该使用选择排序. 它不以任何方式适应数据(注意上面的四个动画在锁定步进中运行), 所以它的运行时间总是二次的.

然而,选择排序具有最小化交换次数的特性. 在交换项的成本很高的应用程序中, 选择排序很可能是选择的算法.

关键

  • 黑色值排序.
  • 灰度值未排序.
  • 红色三角形标记算法位置.

属性

  • 不稳定
  • O(1)额外空间
  • Θ(n2)比较
  • Θ(n)互换
  • 不适应

准备技术面试? 看看我们的采访指南吧.