Cod sursa(job #1190014)

Utilizator ArchazeyBaltatu Andrei-Mircea Archazey Data 24 mai 2014 11:56:34
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include<fstream>
using namespace std;

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

int n,a[500005],aux[500005];


inline int Partition(int st,int dr)
{
    int i=st,j=dr,x=a[(st+dr)>>1];
    for (;;)
        {
            while (a[j]>x) j--;
            while (a[i]<x) i++;
            if (i<j)
                {
                    swap(a[i],a[j]);
                    j--;i++;
                }
            else return j;
        }
}

inline void Qsort(int st,int dr)
{
    if (st<dr)
        {
            int mij=Partition(st,dr);
            Qsort(st,mij);
            Qsort(mij+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;
}