Cod sursa(job #2530358)

Utilizator mihaicivMihai Vlad mihaiciv Data 24 ianuarie 2020 18:15:50
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.71 kb
#include <iostream>
#include <fstream>
using namespace std;

ifstream f("algsort.in");
ofstream g("algsort.out");

int n, v[500000];

void qs(int st, int dr) {

    int i = st;
    int j = dr;
    int mij = (st + dr) / 2;
    int val = v[mij];
    while (i <= j) {
        while (v[i] < val) i++;
        while (v[j] > val) j--;
        if (i <= j) {
            swap(v[i], v[j]);
            i ++;
            j --;
        }
    }
    if (i < dr) qs(i, dr);
    if (j > st) qs(st, j);

}

int main() {

    f >> n;
    for (int i = 0; i < n; ++i) {
        f >> v[i];
    }

    qs(0, n - 1);

    for (int i = 0; i < n; ++i) {
        g << v[i] << " ";
    }

    return 0;
}