Cod sursa(job #2150243)

Utilizator Neamtu_StefanStefan Neamtu Neamtu_Stefan Data 3 martie 2018 13:03:07
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <fstream>

using namespace std;

int n, m, v[500002];

ifstream fin("algsort.in");
ofstream fout("algsort.out");

void citire()
{
    fin >> n;
    for (int i=1; i<=n; ++i)
        fin >> v[i];
}

void quicksort(int st, int dr)
{
    int i=st, j=dr;
    int mi=dr-((dr-st)/2);
    while (i <= j)
    {
        while (v[i] < v[mi])
            ++i;
        while (v[j] > v[mi])
            --j;

        if (i <= j)
        {
            swap(v[i], v[j]);
            ++i, --j;
        }
    }

    if (st < j) quicksort(st, j);
    if (i < dr) quicksort(i, dr);
}

int main()
{
    citire();
    quicksort(1, n);

    for (int i=1; i<=n; ++i)
        fout << v[i] << " ";

    return 0;
}