Pagini recente » Cod sursa (job #604647) | Cod sursa (job #1088806) | Cod sursa (job #687268) | Cod sursa (job #434312) | Cod sursa (job #1567516)
#include <cstdio>
#include <algorithm>
#include <cstring>
#define MaxN 5000000
using namespace std;
int v[MaxN];
int tmp[MaxN];
int main() {
freopen("algsort.in", "r", stdin);
freopen("algsort.out", "w", stdout);
int N;
int fn;
scanf("%d", &N);
for (int i = 0; i < N; i++) {
scanf("%d", &v[i]);
}
fclose(stdin);
for (int step = 1; step < N; step <<= 1) {
for (int i = 0; i + step < N; i += (step << 1)) {
fn = min(i + 2 * step, N);
merge(v + i, v + i + step, v + i + step, v + fn, tmp);
memmove(v + i, tmp, 4 * (fn - i));
}
}
for (int i = 0; i < N; i++) {
printf("%d ", v[i]);
}
fclose(stdout);
return 0;
}