Cod sursa(job #1046645)

Utilizator mads2194FMI - Andrei Stroe mads2194 Data 3 decembrie 2013 11:50:59
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.94 kb
#include <cstdio>
#include <cstdlib>
#include <ctime>

#define N 500001

using namespace std;

int n;
long long int v[N];

void qs(int st,int dr)
{
    int p=v[ (st+dr)/2 ];
    int i=st;
    int j=dr;

    while(i<=j)
    {
        while(p > v[i]) ++i;
        while(p < v[j]) --j;

        if(i<=j)
        {
            int aux;
            aux=v[i];
            v[i]=v[j];
            v[j]=aux;
            ++i;
            --j;
        }
    }

    if(i<dr) qs(i,dr);
    if(st<j) qs(st,j);

}

int main()
{
    freopen("algsort.in","r",stdin);
    freopen("algsort.out","w",stdout);

    scanf("%d\n",&n);

    for(int i=1;i<=n;++i)
    {
        scanf("%d ",&v[i]);
    }

    /*for(int i=1;i<=n;++i)
    {
        printf("%d ",v[i]);
    }
    printf("\n");*/

    qs(1,n);

    for(int i=1;i<=n;++i)
    {
        printf("%d ",v[i]);
    }

    //printf("%d",v[k]);

    return 0;
}