基于
插入排序,提高插入排序的效率
思想:
1.普通的插入排序是跨度为1的希尔排序
2.确定排序跨度,比如跨度为3,则数据每隔3个进行插入排序
3.缩小跨度,跨度减小为2,则数据每隔2个进行插入排序
4.直到缩小跨度为1-----插入排序
优点:
每趟希尔排序,都能将比较小的数排在左边,比较大的数排在右边,避免插入排序时,出现很小的数在最右边导致移动元素过多
跨度间隔计算:
初始值h=1,循环每次h=3*h+1,直到h大于数组大小,最大间隔不大于数组大小(1,4,13,40.。。。)
例:数组长度为10,间隔取4
跨度间隔减小:
h = (h-1)/3