Pagini recente » Cod sursa (job #2869742) | Cod sursa (job #1005509) | Cod sursa (job #200911) | Cod sursa (job #2203225) | Cod sursa (job #1764072)
#include <cstdio>
#include <ctime>
#include <cstdlib>
using namespace std;
int A[500010], N, i;
void qsort(int A[], 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(A, s, i - 1);
qsort(A, i + 1, d);
}
int main() {
srand(time(0));
freopen("algsort.in", "r", stdin);
freopen("algsort.out", "w", stdout);
scanf("%d", &N);
for (i = 0; i < N; i++) {
scanf("%d", &A[i]);
}
qsort(A, 0, N - 1);
for (i = 0; i < N; i++) {
printf("%d ", A[i]);
}
return 0;
}