Cod sursa(job #847998)

Utilizator mcip1977Muresan Ciprian mcip1977 Data 4 ianuarie 2013 18:26:14
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 1.08 kb
#include <fstream>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");

int poz(int v[500001], int x,int y)
        {
            int i, j,aux;
            aux = v[x];
            i = x-1;
            j = y+1;
            while (i < j)
            {
                do j--;
                while (v[j] > aux);
                do i++;
                while (v[i] < aux);
                if (i < j)
                {
                    int a;
                    a = v[i];
                    v[i] = v[j];
                    v[j] = a;
                }
            }
            return j;
        }

void QS(int a[500001], int s, int d)
{
    int p;
    if(s<d)
    {
        p=poz(a,s,d);
        QS(a,s,p);
        QS(a,p+1,d);
    }
}

void citire(int a[500001], int &n)
{
    int i;
    fin>>n;
    for(i=1;i<=n;i++) fin>>a[i];
}

void afis(int a[500001], int n)
{
    int i;
    for(i=1;i<=n;i++) fout<<a[i]<<" ";
}

int main()
{
    int a[500001], n;
    citire(a,n);
    QS(a,1,n);
    afis(a,n);
    return 0;
}