Cod sursa(job #685833)

Utilizator kokoCoconetu Stefan koko Data 21 februarie 2012 11:15:32
Problema Sortare prin comparare Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <fstream>
using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");
int v[500001];
void schimb (int&i, int&j)
{
    int aux;
    aux=i;
    i=j;
    j=aux;
}
int partitie(int st, int dr)
{
    int i,j;
    schimb (v[(st+dr)/2], v[dr]);
    for (i=j=st; i<dr; i++)
    {
        if (v[i]<v[dr])
        {
            schimb (v[j++],v[i]);
        }
    }
    schimb (v[j], v[dr]);
    return j;
}
void qsort(int st, int dr)
{
    if ( st >= dr ) return ;
    int p= partitie (st, dr);
    qsort(st, p-1);
    qsort(p+1, dr);
}
int main ()
{
    int n,i;
    in>>n;
    for (i=1;i<=n;i++)
    {
        in>>v[i];
    }
    qsort (1, n);
    for (i=1;i<=n;i++)
    {
        out<<v[i]<<" ";
    }
    return 0;
}