Cod sursa(job #2484229)

Utilizator meriniucrMeriniuc Razvan- Dumitru meriniucr Data 30 octombrie 2019 19:38:56
Problema Sortare prin comparare Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.76 kb
#include <fstream>

void
f(int v[500001],
  int b,
  int e)
{
    if (b >= e)
    {
        return;
    }

    int i = b + 1;
    int j = e;

    while (i <= j)
    {
        while (i <= j and v[i] <= v[b])
        {
            i++;
        }

        while (i <= j and v[b] <= v[j])
        {
            j--;
        }

        if (i < j)
        {
            std::swap(v[i], v[j]);
        }
    }
    
    std::swap(v[j], v[b]);
    f(v, b, j - 1);
    f(v, i, e);
}

int main()
{
    std::ifstream in("algsort.in");
    std::ofstream out("algsort.out");

    int N;
    int v[500001];

    in >> N;

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

    f(v, 0, N - 1);

    for (int i = 0; i < N; i++)
    {
        out << v[i] << ' ';
    }

    return 0;
}