Cod sursa(job #1726395)

Utilizator lupvasileLup Vasile lupvasile Data 7 iulie 2016 21:57:16
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <bits/stdc++.h>
using namespace std;

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

#define nmax 500010
#define cout fout
int n;
int v[nmax];

int get_pivot(int a,int b)
{
    int ii,jj;
    ii=1;
    jj=0;

    while(a<b)
    {
        if(v[a]>v[b])
        {
            swap(v[a],v[b]);
            ii=1-ii;
            jj=1-jj;
        }

        a+=ii;
        b-=jj;
    }

    return a;

}

void qsort(int a,int b)
{
    if(b<=a) return;

    int p=get_pivot(a,b);

    qsort(a,p-1);
    qsort(p+1,b);
}

int main()
{
    int i;

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

    qsort(1,n);

    for(i=1;i<=n;++i) cout<<v[i]<<' ';
    return 0;
}