Pagini recente » Cod sursa (job #1985001) | infoarena - te ajutam sa devii olimpic! | Cod sursa (job #87618) | Cod sursa (job #1474281) | Cod sursa (job #2847671)
//
// main.cpp
// Sortare prin comparare (infoarena)
//
// Created by Andrei Bădulescu on 11.02.22.
//
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");
int v[500000];
void quick(int st, int dr) {
if (st < dr) {
int pivot = v[(st + dr) / 2];
int i = st, j = dr;
do {
while (i < dr && v[i] < pivot) {
i++;
}
while(j > st && v[j] > pivot) {
j--;
}
if (i <= j) {
swap(v[i], v[j]);
i++;
j--;
}
} while (i <= j);
if (st < j) {
quick(st, j);
}
quick(i, dr);
}
}
int main() {
int n;
in >> n;
for (int i = 0; i < n; i++) {
in >> v[i];
}
quick(0, n - 1);
for (int i = 0; i < n; i++) {
out << v[i] << ' ';
}
return 0;
}