Pagini recente » Cod sursa (job #1204096) | Cod sursa (job #174737) | Cod sursa (job #550095) | Cod sursa (job #1973230) | Cod sursa (job #1238646)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
#define MAXN 500005
ifstream f("algsort.in");
ofstream g("algsort.out");
int n;
int x[MAXN];
void qsort(int st = 1, int dr = n)
{
if (st >= dr) return;
int i = st, j = dr, dir = 1;
while (i != j)
{
if (dir == 1) {
if (x[i] <= x[j]) {
i++;
} else {
swap(x[i], x[j]);
dir = -1;
j--;
}
} else {
if (x[i] <= x[j]) {
j--;
} else {
swap(x[i], x[j]);
dir = 1;
i++;
}
}
qsort(st, i - 1);
qsort(i + 1, dr);
}
}
int main()
{
f >> n;
for (int i = 1; i <= n; i++) {
f >> x[i];
}
qsort();
for (int i = 1; i <= n; i++) {
g << x[i] << ' ';
}
return 0;
}