Cod sursa(job #3000775)

Utilizator RaducusCaracas Radu Nicolae Raducus Data 12 martie 2023 20:29:27
Problema Sortare prin comparare Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
ifstream in("algsort.in");
ofstream out("aglsort.out");
int v[500001];
int n;

void quicksort(int spos, int dpos) {
    if (spos >= dpos) return;

    int m = spos + (dpos - spos) / 2;
    int p = v[m];

    int i = spos, j = dpos;
    while (i <= j) {
        while (v[i] < p) i++;
        while (v[j] > p) j--;
        if (i <= j) {
            swap(v[i], v[j]);
            i++;
            j--;
        }
    }

    quicksort(spos, j);
    quicksort(i, dpos);
}

int main() {
    in >> n;
    //citire
    for (int i = 0; i < n; i++) {
        in >> v[i];
    }

    //afisare
    quicksort(0, n - 1);
    for (int i = 0; i < n; i++) {
        out << v[i] << " ";
    }

    return 0;
}