Cod sursa(job #2388933)

Utilizator MateiTrandafirMatei Trandafir MateiTrandafir Data 26 martie 2019 18:24:38
Problema Sortare prin comparare Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.66 kb
#include <fstream>

int v[500000], n;

void quick_sort(int start, int end) {
    int pivot = v[(start + end) / 2];
    int i = start, j = end;
    while (i != j) {
        while (i < j && v[i] < pivot) ++i;
        while (i < j && v[j] > pivot) --j;
        if (i != j) {
            std::swap(v[i], v[j]);
            ++i;
        }
    }
    if (start < i - 1) quick_sort(start, i - 1);
    if (i + 1 < end) quick_sort(i + 1, end);
}

int main() {
    std::ifstream in("algsort.in");
    std::ofstream out("algsort.out");
    int i;
    in >> n;
    for (i = 0; i < n; ++i) in >> v[i];
    quick_sort(0, n - 1);
    for (i = 0; i < n; ++i) out << v[i] << ' ';
    return 0;
}