Cod sursa(job #2805634)

Utilizator OffuruAndrei Rozmarin Offuru Data 21 noiembrie 2021 16:20:51
Problema Sortare prin comparare Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <bits/stdc++.h>
#define nmax 500005

using namespace std;

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

int a[nmax],n;

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

int pivot(int left,int right)
{
    int pivot=a[left],i=left,j=right;

    while(i<j)
    {
        if(a[i]>a[j])
            swap(a[i],a[j]);
        if(pivot==a[i])
            j--;
        else
            i++;
    }

    return i;
}

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

    int p=pivot(left,right);
    quickSort(left,p-1);
    quickSort(p+1,right);
}

void print()
{
    for(int i=1;i<=n;i++)
        fout<<a[i]<<" ";
}

int main()
{
    read();
    quickSort(1,n);
    print();
    return 0;
}