Pagini recente » Cod sursa (job #3235276) | Cod sursa (job #931017) | Cod sursa (job #796241) | Cod sursa (job #1975300) | Cod sursa (job #1502985)
#include <fstream>
using namespace std;
int v[500001];
int partition(int lo, int hi) {
int i, j, pivot;
i = rand() % (hi - lo + 1) + lo;
swap(v[i], v[lo]);
pivot = v[lo];
i = lo;
j = lo + 1;
while (j <= hi) {
if (v[j] <= pivot) {
i++;
swap(v[i], v[j]);
}
j++;
}
swap(v[lo], v[i]);
return i;
}
void quickSort(int lo, int hi) {
if (lo < hi) {
int k = partition(lo, hi);
quickSort(lo, k-1);
quickSort(k+1, hi);
}
}
int main() {
freopen("algsort.in", "r", stdin);
freopen("algsort.out", "w", stdout);
int n;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%d", &n);
}
quickSort(0, n-1);
for (int i = 0; i < n; i++) {
printf("%d ", v[i]);
}
return 0;
}