Pagini recente » Cod sursa (job #613742) | Cod sursa (job #3323757) | Cod sursa (job #1927965) | Cod sursa (job #556222) | Cod sursa (job #2279125)
#include <bits/stdc++.h>
#pragma GCC optimize("03")
using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");
int n, a[500100];
void Sort(int st, int dr) {
if (st >= dr)
return;
int len = dr - st + 1;
int piv = a[rand() % len + st];
int l = st, r = dr;
while (l <= r) {
while (a[l] < piv)
l++;
while (a[r] > piv)
r--;
if (l <= r) {
swap(a[l], a[r]);
l++;
r--;
}
}
Sort(st, r);
Sort(l, dr);
}
int main() {
srand(time(NULL));
in >> n;
for (int i = 1; i <= n; i++)
in >> a[i];
Sort(1, n);
for (int i = 1; i <= n; i++)
out << a[i] << ' ';
return 0;
}