排序算法之二 折半插入排序
来源:互联网 发布:山东淘宝拍卖会 编辑:程序博客网 时间:2024/05/16 14:21
折半插入排序,折半插入排序在直接插入的基础上进行改进,考虑到直接插入排序将很多开销放在比较和数据移动上。比较是不可避免的,有没有什么办法可以减少比较的次数呢?至少不要像现在这样挨个去比吧?于是想到在前面查找算法中的折半查找法,迅速翻书回去看看。考虑到这样一种情况,当第i个元素要进行排序的时候,它前面的1到i-1位置上的数据是局部有序的,对于有序的数据序列,采用折半查找法去判断在何处插入i位置上的数据,就大大减少了需要比较的次数。意思就是这样了,上代码,截图。最后hight就是要插入的位置。折半插入排序不会减少数据的移动次数。
int BinaryInsertSort(){int i,j,low,high,mid;for (i = 2; i < iCount; i++){iRawBuff[0] = iRawBuff[i];low = 1;high = i -1;while (low<=high){mid = (low+high)/2;if(iRawBuff[0] > iRawBuff[mid])low = mid +1;elsehigh = mid -1;}//找到high,high+1就是i要插入的位置for(j = i-1; j>= high + 1; j--){iRawBuff[j+1] = iRawBuff[j];}iRawBuff[j+1] = iRawBuff[0];printf("第%d趟:\n",i-1);for(int k = 0; k < iCount; k++){std::cout<<iRawBuff[k]<<"\t";}std::cout<<std::endl;}return 0;}
- 排序算法之二 折半插入排序
- 折半插入排序法---排序算法(二)
- 排序算法总结之折半插入排序
- 排序算法之折半插入排序
- 排序算法之折半插入排序
- 排序算法之折半插入排序
- 常用排序算法之折半插入排序
- 排序算法_C++(二)插入排序之折半插入排序
- 排序算法之折半插入算法
- 折半插入排序算法
- 折半插入排序算法
- 折半插入排序算法
- 折半插入排序算法
- 折半插入排序算法
- 折半插入排序算法
- 排序算法------折半插入排序
- 【排序算法】折半插入排序
- 【排序算法】折半插入排序
- 混沌的一周
- 数据共享的积极影响
- 开机会自动运行chkdsk ,怎么设置不运行
- 匈牙利算法
- uCOS-ii内核的任务之二
- 排序算法之二 折半插入排序
- 内核修炼之道
- memset
- The Principles of Good Programming
- 一些操作系统相关概念
- poj 3207 2-sat
- 《大话处理器》相关主题汇总
- 老在博客园混了 以后也来这面逛逛
- vc6 使用 log4cplus 1.0.2 输出毫秒配置