Pagini recente » Cod sursa (job #1163) | Cod sursa (job #778450) | Cod sursa (job #2836432) | Cod sursa (job #12114) | Cod sursa (job #277548)
Cod sursa(job #277548)
#include<stdio.h>
#define dim 500001
int n,a[dim],b[dim];
void merge_sort(int li, int ls)
{
int i,j,k,jum;
jum=(li+ls)/2;
if(li==ls) return;
merge_sort(li,jum);
merge_sort(jum+1,ls);
i=li;
j=jum+1;
k=li;
while( (i<=jum) || (j<=ls) )
{
if( (j>ls) || ( (i<=jum) && (a[i]<a[j]) ) )
{
b[k]=a[i];
i++;
k++;
}
else
{
b[k]=a[j];
j++;
k++;
}
}
for(i=li;i<=ls;i++)
a[i]=b[i];
}
int main()
{
int i;
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
scanf("%d", &n);
for(i=1;i<=n;i++)
scanf("%d", &a[i]);
merge_sort(1,n);
for(i=1;i<=n;i++)
printf("%d ", a[i]);
return 0;
}