Pagini recente » Cod sursa (job #1450557) | Cod sursa (job #146022) | Cod sursa (job #1477734) | Cod sursa (job #2232494) | Cod sursa (job #2669928)
#include <iostream>
#include <algorithm>
#include <stdio.h>
#define NMAX 500000
using namespace std;
int v[NMAX + 1];
int sortare(int begin, int end) {
int b, e, piv;
b = begin; e = end; piv = v[(b + e) / 2];
while (v[b] < piv) b++;
while (v[e] > piv) e--;
while (b < e) {
swap(v[b], v[e]);
do b++; while (v[b] < piv);
do e--; while (v[e] > piv);
}
if (begin < e)
sortare(begin, e);
if (e + 1 < end)
sortare(e + 1, end);
}
int main() {
FILE *fin, *fout;
int n, i;
fin = fopen("algsort.in", "r");
fscanf(fin, "%d", &n);
for (i = 0; i < n; i++)
fscanf(fin, "%d", &v[i]);
fclose( fin );
sortare(0, n - 1);
fout = fopen("algsort.out", "w");
for (i = 0; i < n; i++)
fprintf(fout, "%d ", v[i]);
fclose( fout );
return 0;
}