Cod sursa(job #590437)

Utilizator sealTudose Vlad seal Data 17 mai 2011 14:17:26
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include<cstdio>
using namespace std;

#define INPUT "algsort.in"
#define OUTPUT "algsort.out"
#define NMAX (1 << 19)
int A[NMAX], n;

void qsort(int l, int r)
{
    if(l >= r)
        return;
    int v = A[l], i = l, j = r;

    while(i < j)
    {
        while(i < j && A[j] >= v)
            --j;
        A[i] = A[j];
        while(i < j && A[i] <= v)
            ++i;
        A[j] = A[i];
    }
    A[i] = v;

    qsort(l, i - 1);
    qsort(i + 1, r);
}

int main()
{
    freopen(INPUT, "r", stdin);
    freopen(OUTPUT, "w", stdout);

    scanf("%d", &n);
    for(int i = 0; i < n; ++i)
        scanf("%d", A + i);

    qsort(0, n - 1);

    for(int i = 0; i < n; ++i)
        printf("%d ", A[i]);

    return 0;
}