归并排序
2015-12-14 16:40
323 查看
归并排序
时间复杂度 O(nlogn)
时间复杂度 O(nlogn)
#include<cstdio> #include<cstring> #include<cmath> #include<iostream> using namespace std; const int MAX_A = 100009; //合并 void Merge(int (&c)[MAX_A],int l,int m,int r) { int mp[r-l+2]; int i=l,j=m+1,k=0; while(i<=m&&j<=r) { if(c[i]<=c[j]) mp[k++]=c[i++]; else mp[k++]=c[j++]; } //合并未查到的左或右区间 while(i<=m) mp[k++]=c[i++]; while(j<=r) mp[k++]=c[j++]; //赋值给原数组 for(int i=0;i<k;i++) c[i+l]=mp[i]; } void Merge_sort(int (&b)[MAX_A],int l,int r) { if(l < r) { //递归二分 int m=(l+r)/2; Merge_sort(b,l,m); Merge_sort(b,m+1,r); Merge(b,l,m,r); } } int main() { int a[MAX_A],n; while(~scanf("%d",&n)) { for(int i=0;i<n;i++) scanf("%d",&a[i]); int l=0,r=n-1; Merge_sort(a,l,r); for(int i=0;i<n;i++) printf("%d ",a[i]); printf("\n"); } }
相关文章推荐
- git处理时的问题
- php数组函数-array_rand()
- 第十六周--验证算法(基数排序)
- OpenGL边用边学------2 经典照相机模型
- Oracle12c新特性之基本操作
- 运行时的“VFY: unable to resolve static field”错误
- 第7周项目4 队列数组
- autoencoder
- 窗口重叠,WS_CLIPCHILDREN和WS_CLIPSIBLINGS
- rpmbuild线上实战
- 第十六周项目(1):验证算法2——希尔排序
- 2743: [HEOI2012]采花
- Day1之OtherDemo
- (数据挖掘-入门-4)基于物品的协同过滤
- (数据挖掘-入门-3)基于用户的协同过滤之k近邻
- org.hibernate.exception.GenericJDBCException: could not load an entity:
- 关于perl缺少XML/LibXML.pm问题解决方法
- iOS-在Xcode中使用Git进行源码版本控制(一:Git源)
- CodeForces 375A Divisible by Seven
- iOS应用之间调用