Pagini recente » Cod sursa (job #422029) | Cod sursa (job #2221689) | igorj_5 | Cod sursa (job #3191448) | Cod sursa (job #723894)
Cod sursa(job #723894)
#include <cstdio>
#define NMax 500021
int a[NMax],b[NMax],n;
void mergesort(int lo,int hi) {
int mid=lo+(hi-lo)>>1,i,j,k;
if(lo==hi) return;
mergesort(lo,mid);
mergesort(mid+1,hi);
for(i=lo,j=mid+1,k=lo;i<=mid || j<=hi;k++)
if( j>hi || a[i]<a[j])
b[k]=a[i++];
else
b[k]=a[j++];
for(int i=lo;i<=hi;i++)
a[i]=b[i];
}
int main() {
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
scanf("%d",&n);
for(int o=1;o<=n;o++)
scanf("%d",&a[o]);
mergesort(1,n);
for(int o=1;o<=n;o++)
printf("%d ",&a[o]);
printf("\n");
return 0;
}