算法导论学习 之 分治排序
2016-03-09 11:45
519 查看
code:
#include<iostream> #include<vector> #include<map> using namespace std; void Merge(int* a,int l,int m,int r) { int b[11],c[11]; int i,j,lb,lc,tb,tc; lb = m - l + 1; lc = r - m; for(j = 0;j < lb;j++) b[j] = a[j+l]; b[j] = 2147483647; for(j = 0;j < lc;j++) c[j] = a[m+1+j]; c[j] = 2147483647; tb = tc = 0; for(i = l;i <= r;i ++) { if(b[tb] <= c[tc]){ a[i] = b[tb]; tb ++; } else if(b[tb] >c[tc]){ a[i] = c[tc]; tc ++; } } } void Merge_Sort(int* a,int l,int r) { if(l < r){ int m = (l + r)/2; Merge_Sort(a,l,m); Merge_Sort(a,m+1,r); Merge(a,l,m,r); } } int main(void) { int a[10],i; int a_end,a_begin; a_begin = 0; a_end = 9; for(i = 0;i < 10;i ++) cin >> a[i]; Merge_Sort(a,a_begin,a_end); for(i = 0;i <= a_end;i ++) cout << a[i] << " "; cout << endl; return 0; }
相关文章推荐
- Java类的加载、链接和初始化(个人笔记)
- 转:Parameter Server 详解
- hive 行转列和列转行的方法
- mybatis--动态sql
- java四大特性
- POJ 2709
- JQuery随心笔记----JQuery对象和DOM对象的相互转换
- pat1041:考试座位号
- 提交git push 时failed to push some refs to
- WebViewJavascriptBridge详细使用
- Java并发编程:volatile关键字解析
- rpm命令
- Storyboard 跳转 和 传值
- JavaScript装逼指南
- 设计模式学习笔记——工厂方法模式
- 【python】编程语言入门经典100例--28
- java源文件中只能有一个public类
- java源文件中只能有一个public类
- ZOJ Monthly, February 2016 - E:Ellipse
- jffs2文件系统制作过程