折半插入排序
来源:互联网 发布:淘宝客要不要开通 编辑:程序博客网 时间:2024/06/15 18:36
折半插入排序
如果线性表是有序的,进行查找可以用折半查找来实现。在确定出待插入位置后,就可以统一的向后移动元素了。
void InsertSort(ElemType A[],int n){ int i,j,low,high,mid; for(i=2;i<=n;i++){ //依次将A[2]~A[n]插入到前面已排好序的序列中 A[0]=A[i]; //将A[i]暂存到A[0] low=1; high=i-1; //设置查找范围 while(low<=high){ mid=(low+high)/2; //去中间点 if(A.[mid].key>A[0].key) high=mid-1; //查询左子表 else low=mid+1; //查询右子表 } for(j=i-1;j>=high+1;--j) A[j+1]=A[j]; //统一后移元素,空出插入位置 A[high+1]=A[0]; //插入操作 }}
从上述算法中,不难看出折半插入排序仅仅是减少了比较元素的次数,约为O(nlog2n),该比较次数与待排序表的初始状态无关,仅取决于表中元素个数n;而元素的移动次数没有改变,它取决于待排序表的初始状态。因此,折半插入排序的时间复杂度仍为O(n2)
更多查看我的个人博客:https://beatjerome.github.io
阅读全文
0 0
- 插入排序--折半插入
- 插入排序--折半插入
- 排序:折半插入排序
- 排序--折半插入排序
- 排序-折半插入排序
- 【插入排序】折半插入排序
- 插入排序--折半插入排序
- 折半插入排序,插入排序
- 折半插入排序
- 折半插入排序
- 折半插入排序算法
- 折半插入排序算法
- 折半插入排序 练习
- 折半插入排序
- 折半插入排序
- 折半插入排序
- 折半插入排序 Java
- 折半插入排序算法
- html
- 普通程序员如何入门深度学习?
- TOJ 1001
- 面向对象
- webstrom 的安装
- 折半插入排序
- 6、TensorFlow 中的卷积操作及其在 MobileNets 中的应用
- CSS
- ubuntu系统下pychorm的安装
- Hello Word
- PMP笔记-合同类型与选择
- django下做空白网页
- 《SVM笔记系列之一》什么是支持向量机SVM
- 列向量,列空间,零向量,零空间