Pagini recente » Cod sursa (job #1054802) | Cod sursa (job #578425) | Cod sursa (job #1060569) | Cod sursa (job #2960790) | Cod sursa (job #2146100)
#include <bits/stdc++.h>
#define N 500001
using namespace std;
int n, a[N];
void quicksort(int *a, int *b) {
int n = b - a + 1;
if (n < 2) return;
int p = rand() % n, v = a[p];
int i = 0, j = n - 1;
while (i < j) {
while (a[i] < v && i < j) i++;
while (a[j] > v && j > i) j--;
if (i >= j) break;
swap(a[i], a[j]);
if (a[i] == v) j--;
else i++;
}
quicksort(a, a + i - 1);
quicksort(a + j + 1, b);
}
int main() {
freopen("algsort.in", "r", stdin);
freopen("algsort.out", "w", stdout);
scanf("%i", &n);
for (int i = 0; i < n; i++) scanf("%i", &a[i]);
srand(time(NULL));
quicksort(a, a + n - 1);
for (int i = 0; i < n; i++)
printf("%i ", a[i]);
return 0;
}