#include <iostream>
using namespace std;
const int N =1e5+10;
int k[N],t[N];
int n;
void m_sort(int k[],int a,int b)
{
if(a>=b) return;
int mid=a+b>>1;
m_sort(k,a,mid),m_sort(k,mid+1,b); //递归
int q=a,p=mid+1,c=0; //开始归并
while(q<=mid && p<=b)
{
if(k[q]<=k[p]) t[c++]=k[q++];
else t[c++]=k[p++];
}
while(q<=mid) t[c++]=k[q++];
while(p<=b) t[c++]=k[p++];
for(int i=a,j=0;i<=b;i++,j++) k[i]=t[j]; //归并后传回原数组
}
int main()
{
scanf("%d",&n);
for(int i=0;i<n;i++) scanf("%d",&k[i]);
m_sort(k,0,n-1);
for(int i=0;i<n;i++) printf("%d ",k[i]);
return 0;
}
0.0分
1 人评分
DNA (C++代码)浏览:671 |
C语言程序设计教程(第三版)课后习题7.2 (C语言代码)浏览:569 |
C语言程序设计教程(第三版)课后习题11.5 (C语言代码)浏览:1019 |
C语言程序设计教程(第三版)课后习题11.5 (C语言代码)浏览:654 |
矩形面积交 (Java代码)浏览:1281 |
C语言训练-求函数值 (C语言代码)浏览:976 |
A+B for Input-Output Practice (C++代码)浏览:632 |
淘淘的名单 (C语言代码)浏览:1167 |
C语言训练-计算t=1+1/2+1/3+...+1/n (C语言代码)浏览:942 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:1261 |