Pagini recente » Cod sursa (job #1855063) | Cod sursa (job #2822901) | Cod sursa (job #534300) | Cod sursa (job #1944772) | Cod sursa (job #643753)
Cod sursa(job #643753)
#include <cstdio>
const int MAX_N = 500001 ;
int n;
int v[MAX_N],w[MAX_N];
void MERGE_SORT(int st, int dr)
{
int m=(st+dr)/2;
if(st==dr) return;
MERGE_SORT(st,m);
MERGE_SORT(m + 1,dr);
int b=m+1;
int c=st;
for(int i=st;i<=m || b<=dr;)
if( b>dr || (i<=m && v[i]<v[b]) )
{
w[c] = v[i];
++c;
++i;
}
else
{
w[c] = v[b];
++c;
++b;
}
for(int i=1;i<=dr;++i)
v[i] = w[i];
}
int main()
{
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
scanf("%d",&n);
for(int i=1;i<=n;++i)
scanf("%d",&v[i]);
MERGE_SORT(1,n);
for(int i=1;i<=n;++i)
printf("%d ",v[i]);
printf("\n");
return 0;
}