Pagini recente » Cod sursa (job #2351401) | Cod sursa (job #2374565) | Cod sursa (job #475885) | Cod sursa (job #1079687) | Cod sursa (job #2863378)
#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define mp make_pair
#define dbg(x) cout << #x <<": " << x << "\n";
using ll = long long;
const string myf = "algsort";
ifstream fin(myf + ".in");
ofstream fout(myf + ".out");
int n;
int a[500005];
void hoaver(int st, int dr) {
int b = st, e = dr;
int pivot = a[rand() % (st + dr) + 1];
while (a[b] < pivot) b++;
while (a[e] > pivot) e--;
while (b < e) {
swap(a[b], a[e]);
do {
b++;
} while (a[b] < pivot);
do {
e--;
} while (a[e] > pivot);
}
if (st < e)
hoaver(st, e);
if (e + 1 < dr)
hoaver(e + 1, dr);
}
int main() {
fin >> n;
for (int i = 1; i <= n; ++i)
fin >> a[i];
sort(a + 1, a + n + 1);
for (int i = 1; i <= n; ++i)
fout << a[i] << " ";
fout << '\n';
fin.close();
fout.close();
return 0;
}