Developer Toolbox

插入排序

在左边建立排好的部分,每次加入一个值。新值先被取出,再向左移,直到遇到比它小的值。

  • Ω(n)
  • Θ(n²)
  • O(n²)
  • O(1)
  • 是
  • 是
  • 比较中
  • 移动中
  • 取出的值
  • 排好的部分
  • 已就位
0 / 372 步

逆序的对:154(开始时:154) 顺序错误 已理顺

比较次数 移位次数

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

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

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

试试看: 选一个基本排好的列表。几乎不用移位,所以几步就完成了。

工作原理

左边的部分始终是排好的。取出下一个值,把排好部分中比它大的值都向右移一位,再把它放进空出的位置。很多人整理手里的扑克牌就是这样做的。

适用场合

适合短列表和几乎排好的列表,这时它非常快。真正的排序库在更快的方法内部,也用它来处理列表中的小块。