Pagini recente » Cod sursa (job #1673541) | Cod sursa (job #2356070) | Cod sursa (job #285049) | Cod sursa (job #1999745) | Cod sursa (job #1493140)
#include <cstdio>
#define nmx 500002
using namespace std;
int n, v[nmx], a[nmx];
void read(){
scanf("%d", &n);
for(int i = 1; i <= n; ++i)
scanf("%d", &v[i]);
}
void merge_sort(int st, int dr){
if(st >= dr)
return;
int mij = st + (dr - st) / 2;
merge_sort(st,mij);
merge_sort(mij+1,dr);
int i = st, j = mij + 1;
for(int k = st; k <= dr; ++k)
if(j > dr || (i <= mij && v[i] <= v[j]))
a[k] = v[i++];
else
a[k] = v[j++];
for(int k = st; k <= dr; ++k)
v[k] = a[k];
}
void write(){
for(int i = 1; i <= n; ++i)
printf("%d ", v[i]);
}
int main(){
freopen("algsort.in", "r", stdin);
freopen("algsort.out", "w", stdout);
read();
merge_sort(1,n);
write();
return 0;
}