插入排序

1. 直接插入排序
综述
插入排序将遍历当前容器,将当前值插入到前方合适的位置,形成左侧一定有序,右侧可能无序的状态。
在寻找左方位置的时候,会将比当前遍历值大的不断向右移动。
Ref:
分析
稳定性
直接插入排序是稳定的排序算法
时间复杂度
- 最优:当前是有序的状态:O(n)
- 最差:当前是逆序的状态:O(n^2)
空间复杂度
O(1)
C++代码实现
1 | void insertSort(vector<int>& nums) { |
2. 折半插入排序
综述
相比较直接插入排序,折半插入排序仅减少了比较的次数,依然需要不断移动数据,故时间复杂度仍为O(n^2)
C++代码实现
1 | void insertBiSort(vector<int>& nums) { |
- 本文标题:插入排序
- 本文作者:Little_YangYang
- 创建时间:2021-10-31 23:09:25
- 本文链接:https://www.endlcode.com/2021/10/31/插入排序/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!