Cod sursa(job #3254090)

Utilizator Robert_MitriRobert Mitri Robert_Mitri Data 6 noiembrie 2024 08:51:09
Problema Sortare prin comparare Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include <fstream>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");

const int nmax = 500000;

long long v[nmax + 5];
int n;

int pivot(int st,int dr)
{
    int trv = 1;
    while(st<dr)
    {
        if(v[st] > v[dr])
            swap(v[st],v[dr]),trv = 1-trv;
        st+=1-trv;
        dr-=trv;
    }
    return st;
}
void quick_sort(int st,int dr)
{
    if( st >= dr)
        return;
    int p = pivot(st,dr);
    quick_sort(st,p-1);
    quick_sort(p+1,dr);
}

int main()
{
    fin>>n;
    for(int i=1;i<=n;i++) fin>>v[i];
    quick_sort(1,n);
    for(int i=1;i<=n;i++) fout<<v[i]<<' ';
}