折半插入排序
来源:互联网 发布:电商 用户数据指标 编辑:程序博客网 时间:2024/06/06 03:24
折半插入排序,优化了直接插入排序的寻找位置的过程,使用二分法寻找
#include <iostream>#include <stdio.h>#include <string.h>using namespace std;#define T 1000000#define INF 999999int n,a[T],b[T];//折半插入排序int searchk(int *b,int l,int f,int key){ if(l==f) { if(key<b[l]) return l; else return l+1; } else { int t=(l+f)/2; if(key<b[t]) return searchk(b,l,t,key); else return searchk(b,t+1,f,key); }}void dichsort(int *a,int n){ memset(b,0,sizeof(b)); *b=*a; for(int i=1;i<n;i++) { int p=searchk(b,0,i-1,a[i]); // cout<<"p="<<p<<endl; for(int k=i;k>p;k--) b[k]=b[k-1]; b[p]=a[i]; } for(int i=0;i<n;i++) a[i]=b[i];}int main (){ while(scanf("%d",&n)!=EOF) { for(int i=0;i<n;i++) scanf("%d",&a[i]); dichsort(a,n); int p=(n+1)/2; printf("%d\n",a[p-1]); } return 0;}
阅读全文
0 0
- 插入排序--折半插入
- 插入排序--折半插入
- 排序:折半插入排序
- 排序--折半插入排序
- 排序-折半插入排序
- 【插入排序】折半插入排序
- 插入排序--折半插入排序
- 折半插入排序,插入排序
- 折半插入排序
- 折半插入排序
- 折半插入排序算法
- 折半插入排序算法
- 折半插入排序 练习
- 折半插入排序
- 折半插入排序
- 折半插入排序
- 折半插入排序 Java
- 折半插入排序算法
- Windows部署Tomcat8启动服务
- win7下python3和python2共存环境使用pip
- css margin重叠的问题
- Jenkins集成findbugs插件静态代码分析
- Oracle两种临时表的创建与使用详解
- 折半插入排序
- TypeScript版冒泡
- 使用phantomjs对网页截图
- AWS 存储产品[1]S3
- Java NIO 与 IO之间的区别
- eclipse或myeclipse快速定义变量的快捷键
- 一不小心搞出来的空指针
- 层次分析法用法和概念
- CS231n课程笔记翻译:图像分类笔记(上)