Pagini recente » Cod sursa (job #477833) | Cod sursa (job #1357721) | Cod sursa (job #1961082) | Cod sursa (job #2268477) | Cod sursa (job #1480424)
#include <stdio.h>
#define Nadejde 500000
int N;
int a[Nadejde];
void class(int b, int mid, int e) {
int i = b, j = mid + 1, k = 0, tmp[Nadejde];
while ((i <= mid) && (j <= e)) {
if (a[i] < a[j]) {
tmp[k++] = a[i++];
} else {
tmp[k++] = a[j++];
}
}
while (i <= mid) {
tmp[k++] = a[i++];
}
while (j <= e) {
tmp[k++] = a[j++];
}
for (i = b; i <= e; i++) {
a[i] = tmp[i - b];
}
}
void sort(int b, int e) {
if (b < e) {
int mid = (b + e) >> 1;
sort(b, mid);
sort(mid + 1, e);
class(b, mid, e);
}
}
int main(void) {
int i;
FILE *f = fopen("algsort.in", "r");
fscanf(f, "%d", &N);
for (i = 0; i < N; i++) {
fscanf(f, "%d", &a[i]);
}
fclose(f);
f = fopen("algsort.out", "w");
sort(0, N - 1);
for (i = 0; i < N; i++) {
fprintf(f, "%d ", a[i]);
}
fputc('\n', f);
fclose(f);
/// Multumim Doamne!
puts("Doamne ajuta!");
return 0;
}