C++ 折半插入排序算法

来源:互联网 发布:dota2 mac怎么全屏 编辑:程序博客网 时间:2024/04/30 01:39


    折半插入排序,折半插入排序是在直接插入的改进,通过折半查找得到插入位置,减少比较次数。


折半插入排序的基本思想是:设在数据表中有一个元素序列a[0],a[1],……,a[n-1]。其中,a[0],a[1],……,a[i-1]已经排好序。在插入a[1]时,利用折半查找法寻找a[i]的插入位置。



int BinaryInsertSort(){int i, j, low, high, mid,temp;for (i = 2; i < iCount; i++){Arr[0] = Arr[i];low = 1;high = i - 1;while (low <= high){mid = (low + high) / 2;if (Arr[0] >Arr[mid])low = mid + 1;elsehigh = mid - 1;}for (j = i - 1; j >= low ; j--){Arr[j + 1] = Arr[j];}Arr[low] = Arr[0];}for (int k = 1; k < iCount; k++){cout << Arr[k] << "   ";}cout << endl;return 0;}



0 0
原创粉丝点击