Cod sursa(job #923013)

Utilizator PopdanDanielPopdan Daniel PopdanDaniel Data 22 martie 2013 19:34:27
Problema Sortare prin comparare Scor 0
Compilator c Status done
Runda Arhiva educationala Marime 0.81 kb
#include <stdio.h>
#include <stdlib.h>
#define NMAX 500000
int A[NMAX],n;
int getPivot(int a,int b)
{
    int piv,var,ind;
    piv=A[a];
    while (a<b)
    {
        if (A[a]>A[b])
        {
            var=A[a];
            A[a]=A[b];
            A[b]=var;
        }
       if (A[a]==piv)
              b--;
        else a++;
    }
    ind=a;
    return ind;
}
void quicksort(int a,int b)
{
    int ind;
    if (a<b)
    {
        ind=getPivot(a,b);
        quicksort(a,ind-1);
        quicksort(ind+1,b);
    }
}
int main()
{
    int i;
    freopen("quicksort.in", "r", stdin);
    freopen("algsort.out", "w", stdout);
    scanf("%d", &n);
    for(i=0; i<n; i++)
        scanf("%d", &A[i]);
    quicksort(0,n-1);
    for(i=0; i<n; i++)
        printf("%d ", A[i]);
    return 0;
}