Cod sursa(job #1224153)

Utilizator ArchazeyBaltatu Andrei-Mircea Archazey Data 29 august 2014 22:50:51
Problema Sortare prin comparare Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include<fstream>
#include<cstdlib>
using namespace std;

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

const int NMAX=500005;

int n,a[NMAX];

inline void Qsort(const int st,const int dr)
{
    if (st<dr)
        {
            int c,i=st,x,aim=st;
            c=(st+dr)>>1;
            x=a[c];
            swap(a[c],a[dr]);
            for (;i<dr;i++)
            if (a[i]<=x)
                {
                    swap(a[i],a[aim]);
                    aim++;
                }
            swap(a[aim],a[dr]);
            Qsort(st,aim-1);
            Qsort(aim+1,dr);
        }
}

int main()
{
    int i;
    fin>>n;
    for (i=1;i<=n;i++) fin>>a[i];
    Qsort(1,n);
    for (i=1;i<=n;i++)  fout<<a[i]<<" ";
    return 0;
}