- 算法介绍
- 源码
- 总结
一.算法介绍
折半插入排序算法是在直接插入排序算法的基础上进行的改进。由于直接插入排序算法分为查找和插入两个部分的操作,而在直接插入排序算法中进行查找的算法是依次访问每个元素的,这样我们就可以对查找进行折半查找来改进算法的效率。
折半查找我将它分为两个部分,一部分是需要折半查找的元素为偶数个的情况,另一个是需要折半查找的元素为奇数个的情况。
- 偶数个
如果是偶数个元素,那么进行折半的时候,就会出现中间数为两个的情况。如图所示:
第一个元素n表示这个数组中含有的元素个数,假设前四个元素已经排序了,我们将要对第五个元素2进行折半插入排序。我们将那个indexlow设置为1,代表元素1,将indexhigh设置为4,代表元素5.这样我们折半的时候,中间的元素就有两个: