算法介绍
步骤:
- 从第一个元素开始,该元素可以认为已经被排序
- 取出下一个元素,在已经排序的元素序列中从后向前扫描
- 如果被扫描的元素(已排序)大于新元素,将该元素后移一位
- 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置
- 将新元素插入到该位置后
- 重复步骤2~5
排序演示:
可视化效果:这里
Javascript实现
1 |
|
Java实现
1 | package com.algs; |
总结
- 实验证明(《算法》第四版P160),插入排序比选择排序更快。
- 稳定。相同元素排序后能保持排序前的相对顺序。
- 原地排序。
- 时间复杂度为:介于线性级别与平方级别之间。取决于输入元素的排列情况。
- 空间复杂度为:常数级别。
GitHub:https://github.com/AlbertKnag/algs-practice
上一篇:排序算法02:选择排序
下一篇:排序算法04:希尔排序