本篇博文旨在介绍排序算法中的插入排序;介绍了直接插入排序和希尔排序,并通过时间复杂度和空间复杂度进行了分析;最后用代码实现了直接插入排序和希尔排序
直接插入排序
基本思想
1、将数组分成有序和无序的两块区间,有序区间开始只划分数组的第一个元素
2、从无序区间的第一个数,找到合适的位置插入到有序的数组中
图解
时间复杂度和空间复杂度
在最好的情况下,已经有序,只需要比较n-1次
在最坏的情况下,数组全为逆序,一共需要比较 (n-1)+(n-2)+...+1是一个等差数列;是一个N方级别的算法
时间复杂度为O(N* N)
所以直接插入排序不适合数据量比较大的排序算法,因为每次挪动元素的代价是很大的
直接插入排序只占用了