经典排序算法之归并排序
来源:互联网 发布:excel省市数据 编辑:程序博客网 时间:2024/06/05 10:26
点击(此处)折叠或打开
- #include<iostream>
- using namespace std;
- int *aux = NULL;
- void sort(int *a,int,int);
- void merge(int *a,int lo,int mid,int hi)//归并有序子数组
- {
- int i =lo,j = mid+1;
- for (int k = lo;k <= hi;k++)
- {
- aux[k] = a[k];
- }
- for (int k = lo;k <= hi;k++)
- {
- if (i > mid) a[k] = aux[j++];
- else if (j > hi) a[k] = aux[i++];
- else if (aux[j]<aux[i]) a[k] = aux[j++];
- else a[k] = aux[i++];
- }
- }
- void sort(int *a,int n)
- {
- aux = new int[n];
- sort(a,0,n-1);
- delete[] aux;
- }
- //将两个子数组排序,通过归并两个字数组来将这个数组排序
- void sort(int *a,int lo,int hi)
- {
- if (hi <= lo) return;
- int mid = lo + (hi-lo)/2;
- sort(a,lo,mid);
- sort(a,mid+1,hi);
- merge(a,lo,mid,hi);
- }
- int main()
- {
- int a[] = {1,2,4,3,5};
- sort(a,5);
- for (int i = 0;i < 5;i++)
- {
- cout << a[i]<< " ";
- }
- cout << endl;
- return 0;
- }
点击(此处)折叠或打开
- #include<iostream>
- using namespace std;
- int *aux = NULL;
- void Merge(int *a,int lo,int mid,int hi)
- {
- int i = lo,j = mid+1;
- for (int k = lo;k <= hi;k++)
- {
- aux[k] = a[k];
- }
- for (int k = lo;k <= hi;k++)
- {
- if (i > mid) a[k] = aux[j++];
- else if (j > hi) a[k] = aux[i++];
- else if (aux[i]<aux[j]) a[k] = aux[i++];
- else a[k] = aux[j++];
- }
- }
- void sort(int *a,int n)
- {
- int N = n;
- aux = new int[N];
- for (int sz = 1;sz < N;sz = sz+sz)
- {
- for (int lo = 0;lo<N-sz;lo += sz+sz)
- Merge(a,lo,lo+sz-1,min(lo+sz+sz-1,N-1));
- }
- }
- int main()
- {
- int a[] = {5,4,3,2,1};
- sort(a,5);
- for (int i = 0;i < 5;i++)
- {
- cout << a[i]<<" ";
- }
- cout << endl;
- return 0;
- }
0
上一篇:经典排序算法之堆排序
下一篇:linux内存管理--缺页异常处理
相关热门文章
- test123
- 编写安全代码——小心有符号数...
- 使用openssl api进行加密解密...
- 一段自己打印自己的c程序...
- 彻底搞定C语言指针详解-完整版...
给主人留下些什么吧!~~
评论热议
阅读全文
0 0
- 经典算法之归并排序
- 经典排序算法之归并排序
- 经典排序算法之归并排序
- 经典算法学习:排序之归并排序
- 经典排序算法之:归并排序
- 经典排序算法之归并排序
- 经典算法--归并排序
- 【经典排序算法】归并排序
- 经典白话算法之归并排序
- 经典算法整理之归并排序
- 经典算法之二:归并排序
- 经典算法之二路归并排序
- 经典排序 之 归并
- 经典排序之归并排序
- 经典排序之归并排序
- 经典排序之归并排序
- 经典排序算法的汇总之归并排序
- 经典排序算法之——归并排序
- list_for_each_entry
- 字符串的包含
- 字符串的排列组合
- NGINX实现IF语句里的AND,OR多重判断
- 经典排序算法之堆排序
- 经典排序算法之归并排序
- linux内存管理--缺页异常处理
- 进程的页表创建详解
- linux的swapper_pg_dir的初始化
- 读《概率论与数理统计(陈希孺)》关于几何概率与伯特兰悖论的随笔
- linux内核的一点总结
- 行列递增矩阵的查找
- network相关
- 内存管理
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
卢勇个人资料
卢勤
卢勤的书
卢勤简介
卢勤一家身败名裂
知心姐姐
卢卓
卢卡
被魅魔俘虏的勇者卢卡
卢国沾
卢国伟
卢国伟建盏
卢奇
卢奇简介
卢姓
卢娜
卢宅
卢安荒野
卢山
卢山瀑布
卢山会议
卢山冰
卢山在哪个省哪个市
望卢山瀑布古诗
卢山在哪个省哪个市区
卢山旅游指南
江西卢山旅游
卢山是哪个省份
卢山瀑布图片
江西庐山风景区
庐山风景区酒店
九江庐山门票多少钱
庐山风景区宾馆
庐山门票团购
庐山大门票多少钱
庐山游价格
庐山三叠泉门票
庐山风景区附近的酒店
庐山景区门票
庐山 门票
庐山风景区附近酒店