直接插入排序
直接插入排序
基本原理
直接插入排序(Straight Insertion Sort)的基本操作是将一个记录插入到已排好序的有序表中,从而得到一个新的,记录数新增1的有序表。类似理扑克牌。
时间复杂度O(\(n^2\))
代码
public static void insertSort(int[] input) { |
插入排序的特点
- 稳定排序
- in-place ,主需要一个记录的辅助空间
- 整体性能优于另外两类简单排序(冒泡和选择排序)
最好的情况
要排序的序列本身就是有序的, 每次对比只会和前一个,并且没有移动操作, 时间复杂度为O(n)
最差的情况
要排序的序列是逆序的,每次迭代都要和前面所有元素对比,并且每轮都会有移动,时间复杂度O(\(n^2\))