Pagini recente » Cod sursa (job #641465) | Cod sursa (job #624308) | Cod sursa (job #2909133) | Cod sursa (job #2941926) | Cod sursa (job #1014588)
#include<stdio.h>
#define INF 500002
int n,v[INF],v2[INF];
inline void inter(int st,int dr);
void sort(int st,int dr)
{
if(st>=dr)return;
int m=(st+dr)>>1;
sort(st,m);
sort(m+1,dr);
inter(st,dr);
}
inline void inter(int st,int dr)
{
int ind=st;
int m=(st+dr)>>1;
int i=st,j=m+1;
while(i<=m&&j<=dr)
if(v[i]<v[j]){v2[ind++]=v[i];++i;}
else{v2[ind++]=v[j];++j;}
for(i;i<=m;++i)v2[ind++]=v[i];
for(j;j<=dr;++j)v2[ind++]=v[j];
for(int k=st;k<=dr;++k)v[k]=v2[k];
}
int main()
{
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
scanf("%d",&n);
for(int i=0;i<n;++i)scanf("%d",&v[i]);
sort(0,n-1);
for(int i=0;i<n;++i)printf("%d ",v[i]);
return 0;
}