Pagini recente » Cod sursa (job #2643455) | Cod sursa (job #182516) | Cod sursa (job #2415674) | Rating Cochiorca Oana-Maria (oana_10) | Cod sursa (job #789323)
Cod sursa(job #789323)
#include <cstdio>
#define BM 500005
int a[BM],ad[BM],dim;
void intcl(int i1,int j1,int i2,int j2){
dim=0;
int i=i1,j=i2;
for(;i<=j1&&j<=j2;){
if(a[i]<a[j]){
ad[++dim]=a[i];
++i;
}
else {
ad[++dim]=a[j];
++j;
}
}
for(;i<=j1;++i)ad[++dim]=a[i];
for(;j<=j2;++j)ad[++dim]=a[j];
for(i=i1;i<=j2;++i)a[i]=ad[i-i1+1];
}
void merge_sort(int i,int j){
int mij=(i+j)/2;
if(i==j)return;
merge_sort(i,mij);
merge_sort(mij+1,j);
intcl(i,mij,mij+1,j);
}
int main () {
int n,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;
}