Cod sursa(job #2670257)

Utilizator Alex_BubBuburuzan Alexandru Alex_Bub Data 9 noiembrie 2020 15:35:33
Problema Sortare prin comparare Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include <fstream>

using namespace std;

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

const int NMax = 5e5;
int N, V[NMax + 5];

void Read()
{
    fin >> N;

    for(int i = 1; i <= N; i++) {
        fin >> V[i];
    }
}

int Partition(int left, int right)
{
    int pivot = V[right], i = left;

    for(int j = left; j < right; j++) {
        if(V[j] < pivot)
            swap(V[j], V[i++]);
    }
    swap(V[i], V[right]);

    return i;
}

void Quicksort(int left, int right)
{
    if(left >= right)
        return;

    int pivot = Partition(left, right);
    Quicksort(left, pivot - 1);
    Quicksort(pivot + 1, right);
}

void Print()
{
    for(int i = 1; i <= N; i++) {
        fout << V[i] << " ";
    }
    fout << '\n';
}

int main()
{
    Read();
    Quicksort(1, N);
    Print();

    return 0;
}