Cod sursa(job #1379217)

Utilizator demetriad-dagpagDavid Demetriad demetriad-dagpag Data 6 martie 2015 17:02:42
Problema Sortare prin comparare Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.89 kb
#include <stdio.h>
#include <stdlib.h>
int v[500001];
void quicksort(int p,int u)
{
    int i,aux,pivot,j;
    if(p<u)
    {
        pivot=v[(p+u)/2];
        i=p;
        j=u;
        while(i<=j)
        {
            while(v[i]<pivot && i<u)
                i++;
            while(v[j]>pivot && p<j)
                j--;
            if(i<=j)
            {
                aux=v[i];
                v[i]=v[j];
                v[j]=aux;
                i++;
                j--;
            }
        }
        if(i<u)
            quicksort(i,u);
        if(p<j)
            quicksort(p,j);
    }
}
int main()
{
    int i,n;
    freopen("algsort.in","r",stdin);
    freopen("algsort.out","w",stdout);
    scanf("%d",&n);
    for(i=1; i<=n; i++)
        scanf("%d",&v[i]);
    quicksort(1,n);
    for(i=1; i<=n; i++)
        printf("%d ",v[i]);

    return 0;
}