Pagini recente » Cod sursa (job #746301) | Cod sursa (job #2025081) | Cod sursa (job #2868111) | Cod sursa (job #677900) | Cod sursa (job #2900747)
#include <fstream>
#include <random>
#include <time.h>
using namespace std;
// quick sort
ifstream fin("algsort.in");
ofstream fout("algsort.out");
const int DIM = 500010;
int n, v[DIM], w[DIM];
void sorteaza(int st, int dr);
int poz(int st, int dr);
int main() {
fin >> n;
for (int i = 0; i < n; i++) {
fin >> v[i];
}
sorteaza(0, n - 1);
for (int i = 0; i < n; i++)
fout << v[i] << " ";
return 0;
}
void sorteaza(int st, int dr) {
if (st < dr) {
int p = poz(st, dr);
sorteaza(st, p - 1);
sorteaza(p + 1, dr);
}
}
int poz(int st, int dr) {
int dst = 0, ddr = -1;
while (st < dr) {
if (v[st] > v[dr]) {
swap(v[st], v[dr]);
swap(dst, ddr);
dst = -dst;
ddr = -ddr;
}
st += dst;
dr += ddr;
}
return st;
}