Cod sursa(job #3041894)

Utilizator stefanrotaruRotaru Stefan-Florin stefanrotaru Data 2 aprilie 2023 14:08:36
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include <fstream>
#include <algorithm>

using namespace std;

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

int a[500005], n;

void quickSort (int st, int dr)
{
    int mij = a[(st + dr) / 2];

    int stS = st, drD = dr;

    while (stS <= drD) {
        while (a[stS] < mij) {
            stS++;
        }

        while (a[drD] > mij) {
            drD--;
        }

        if (stS <= drD) {
            swap(a[stS], a[drD]);
            stS++;
            drD--;
        }
    }

    if (st < drD) {
        quickSort(st, drD);
    }

    if (stS < dr) {
        quickSort(stS, dr);
    }
}

int main()
{
    f >> n;

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

    quickSort (1, n);

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

    g.close();

    return 0;
}