首页 / 算法 / 算法分析实验之合并排序
算法分析实验之合并排序
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了算法分析实验之合并排序,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1212字,纯文字阅读大概需要2分钟。
内容图文
![算法分析实验之合并排序](/upload/InfoBanner/zyjiaocheng/631/b401c6209514448b893337d9f06b5f3a.jpg)
题目描述
这是一个很简单的排序题目. 为了锻炼大家对不同算法的了解,请大家用归并排序法对此题进行解答. 对一组整数数列A[1],A[2],A[3]......A[N]进行排序,按照从小到大的顺序输出.输入
本题只有一组测试数据,在输入的第一行输入N(表示整数数列的大小)(N < 1000) 接下来N行输入N个整数,每一行一个整数.
输出
对已经排好序的数从小到大依次输出,每两个数之间用两个空格隔开,且每输出10个数换行.
样例输入复制
12 45 545 48 47 44 45 4857 58 57 485 1255 42
样例输出复制
42 44 45 45 47 48 57 58 485 545 1255 4857
#include<iostream> #include<vector> using namespace std; int n; void Merge(int a[],int temp[],int start,int mid,int end) { int i=start,j=mid+1,k=start; while(i!=mid+1&&j!=end+1){ if(a[i]<=a[j]) temp[k++]=a[i++]; else temp[k++]=a[j++]; } while(i!=mid+1) temp[k++]=a[i++]; while(j!=end+1) temp[k++]=a[j++]; for(i=start; i<=end; i++) a[i] = temp[i]; } void Mergesort(int a[],int temp[],int start,int end) { int mid; if(start<end) { mid=start+(end-start)/2; Mergesort(a,temp,start,mid); Mergesort(a,temp,mid+1,end); Merge(a,temp,start,mid,end); } } int main(){ cin>>n; int a[n]; for(int i=0;i<n;i++) cin>>a[i]; int b[n]; Mergesort(a,b,0,n-1); for(int i=0;i<n;i++){ if((i+1)%10==0) cout<<a[i]<<endl; else{ if(i==n-1) cout<<a[i]<<endl; else cout<<a[i]<<" "; } } return 0; }
内容总结
以上是互联网集市为您收集整理的算法分析实验之合并排序全部内容,希望文章能够帮你解决算法分析实验之合并排序所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。