Pagini recente » Cod sursa (job #349370) | Cod sursa (job #387912) | Cod sursa (job #1846172) | Cod sursa (job #2161535) | Cod sursa (job #1426772)
#include <stdio.h>
int n,i,c[500001],t[500001];
void merge_sort(int st,int dr)
{
int m,k,i,j;
if (st==dr) return;
m=(st+dr)/2;
merge_sort(st,m);
merge_sort(m+1,dr);
for (i=st,j=m+1,k=1;i<=m || j<=dr;)
if ((t[i]<t[j] && i<=m) || j>dr) c[k++]=t[i++]; else c[k++]=t[j++];
for (i=st,k=1;i<=dr;i++) t[i]=c[k++];
}
int main(){
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
scanf("%d",&n);
for (i=1;i<=n;i++) scanf("%d",&t[i]);
merge_sort(1,n);
for (i=1;i<=n;i++)
printf("%d ",t[i]);
return 0;
}