Cod sursa(job #1932415)

Utilizator AndreiMaximIonutMaxim Andrei AndreiMaximIonut Data 19 martie 2017 19:17:31
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <fstream>

using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int N;
long long v[500001];
int Qsort(int li,int ls)
{
    int st,dr,x,i=0,j=-1,aux;
    st=li;
    dr=ls;
    while(st<dr)
    {
        if(v[st]>v[dr])
        {
            swap(v[st],v[dr]);
            aux=i;i=-j;j=-aux;
        }
        st+=i;
        dr+=j;
    }
    return st;
}
void divide(int li, int ls)
{
    int m=Qsort(li,ls);
    if(m-1>li) divide(li,m-1);
    if(m+1<ls) divide(m+1,ls);
}
int main()
{
    int i;
    fin>>N;
    for(i=1; i<=N; ++i) fin>>v[i];
    divide(1,N);
    for(i=1; i<=N; ++i)
        fout<<v[i]<<' ';
    return 0;
}