Cod sursa(job #2531636)

Utilizator victorzarzuZarzu Victor victorzarzu Data 26 ianuarie 2020 15:23:37
Problema Sortare prin comparare Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.88 kb
#include <bits/stdc++.h>

using namespace std;
int n;
int a[500000];
ofstream g("algsort.out");
ifstream f("algsort.in");

void Read()
{
    freopen("algsort.in","r",stdin);
    f>>n;
    for(int i = 0;i < n;++i)
        f>>a[i];
}

int partition(int a[],int low,int high)
{
    int pivot = a[high];
    int i = low - 1;

    for(int j = low;j < high;++j)
        if(a[j] < pivot)
        {
            ++i;
            swap(a[i],a[j]);
        }
    swap(a[i + 1],a[high]);
    return (i + 1);
}

void QuickSort(int a[],int low,int high)
{
    if(low < high)
    {
        int pi = partition(a,low,high);

        QuickSort(a,low,pi - 1);
        QuickSort(a,pi + 1,high);
    }
}

void Print()
{
    for(int i = 0;i < n;++i)
        g<<a[i]<<" ";
    g.close();
}

int main()
{
    Read();
    QuickSort(a,0,n - 1);
    Print();
    return 0;
}