Cod sursa(job #3139897)

Utilizator andreipirjol5Andrei Pirjol andreipirjol5 Data 2 iulie 2023 13:28:28
Problema Sortare prin comparare Scor 80
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include <fstream>

using namespace std;
ifstream fin ("algsort.in");
ofstream fout("algsort.out");
const int NMAX = 5 * (1e5);
int v[NMAX + 5];

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

    int mid = (left + right) / 2;
    swap(v[mid], v[right]);
    int first = left;

    for(int i = left; i <= right - 1; i++)
        if(v[i] < v[right])
        {
            swap(v[i], v[first]);
            first++;
        }

    swap(v[first], v[right]);
    QuickSort(left, first);
    QuickSort(first + 1, right);
}

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

    QuickSort(1, n);

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

    fin.close();
    fout.close();
    return 0;
}