Pagini recente » Cod sursa (job #1068913) | Cod sursa (job #1050787) | Cod sursa (job #1579878) | Romanii medaliati la IOI | Cod sursa (job #409157)
Cod sursa(job #409157)
#include <stdio.h>
long a[1000000],b[1000000],i,n;
void merge_sort(long st,long dr)
{long mij=st+((dr-st)>>1),i,j,k;
if(st!=dr)
{merge_sort(st,mij);
merge_sort(mij+1,dr);
for(i=st,j=mij+1,k=st;i<=mij||j<=dr;)
if(j>dr||(i<=mij&&a[i]<a[j]))
b[k++]=a[i++];
else
b[k++]=a[j++];
for(k=st;k<=dr;k++)a[k]=b[k];
}
}
int main()
{freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
scanf("%ld",&n);
for(i=1;i<=n;i++)scanf("%ld",&a[i]);
fclose(stdin);
merge_sort(1,n);
for(i=1;i<=n;i++)printf("%ld ",a[i]);
fclose(stdout);
return 0;
}