Cod sursa(job #1934691)

Utilizator AndreiMaximIonutMaxim Andrei AndreiMaximIonut Data 21 martie 2017 18:49:43
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <fstream>

using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int N;
int v[500001];
int Qsort(int li,int ls)
{
    int st=li,dr=ls;
    int st,dr,x;
    st=li;
    dr=ls;
    x=v[li];
    while(st<dr)
    {
        while(st<dr && v[dr]>=x) dr--;
        v[st]=v[dr];
        while(st<dr && v[st]<=x) st++;
        v[dr]=v[st];
    }
    v[st]=x;

    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;
}