Pagini recente » Cod sursa (job #2028166) | Cod sursa (job #1148899) | Cod sursa (job #2719138) | Cod sursa (job #981109) | Cod sursa (job #409165)
Cod sursa(job #409165)
#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;
}