Toptal连接前3% 自由开发商 all over the world.

几乎排序的初始订单

在几乎排序初始订单上的8个排序算法的动画,代码,分析和讨论。

如何使用: “全部播放”,或选择    button.

全部播放
游戏动画
插入
游戏动画
选择
游戏动画
气泡
游戏动画
游戏动画
合并
游戏动画
游戏动画
快的
游戏动画
快的3
讨论

分类几乎排序的数据在实践中非常常见。一些观察结果:

  • 插入排序是此初始条件上的清晰获胜者。
  • 泡沫排序快速,但插入排序具有较低的开销。
  • shell排序快速,因为它基于插入排序。
  • 合并排序,堆排序和快速排序不适应几乎排序的数据。

插入排序提供O(n2)最糟糕的情况算法,其在几乎对数据分类时适应O(n)时间。一个人想要一个(n·lg(n))算法,它适应这种情况; Smopdssort是这样的算法,但很复杂。 Shell排序是此处的唯一示出的子二次算法在此情况下也是自适应的。

钥匙
  • 黑色值是排序的。
  • 灰色值是未侵入的。
  • 红色三角形标记算法位置。
  • 深灰色值表示当前间隔(shell,合并,快速)。
  • 一对红色三角形标记左侧和右侧指针(快速)。
准备技术面试?查看我们的采访指南。