Pagini recente » Cod sursa (job #1497702) | Cod sursa (job #2687929) | Cod sursa (job #2072057) | Cod sursa (job #933968) | Cod sursa (job #1764084)
#include <cstdio>
#include <ctime>
#include <cstdlib>
#include <fstream>
using namespace std;
int A[500010], N, i;
void qsort(int s, int d) {
if (s >= d) {
return;
}
int p = A[s + rand() % (d - s + 1)];
int i = s, j = d, aux = 0;
while (i <= j) {
while (A[i] < p && i < j) i++;
while (A[j] > p && i < j) j--;
if (A[i] == A[j]) {
j--;
} else {
aux = A[i]; A[i] = A[j]; A[j] = aux;
}
}
qsort(s, i - 1);
qsort(i + 1, d);
}
int main() {
srand(time(0));
//freopen("algsort.in", "r", stdin);
//freopen("algsort.out", "w", stdout);
ifstream f("algsort.in");
ofstream g("algsort.out");
//scanf("%d", &N);
f >> N;
for (i = 0; i < N; i++) {
//scanf("%d", &A[i]);
f >> A[i];
}
qsort( 0, N - 1);
for (i = 0; i < N; i++) {
//printf("%d ", A[i]);
g << A[i] << ' ';
}
f.close();
g.close();
return 0;
}