Cod sursa(job #3041902)

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

using namespace std;

int n, a[500005];

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

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

    int stNew = st, drNew = dr;

    while (stNew <= drNew) {
        while (a[stNew] < mij) {
            stNew++;
        }

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

        if (stNew <= drNew) {
            swap (a[stNew], a[drNew]);
            stNew++;
            drNew--;
        }
    }

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

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

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] << ' ';
    }

    return 0;
}