Cod sursa(job #1019385)

Utilizator Emanuel9Dumitru Emanuel Cristian Emanuel9 Data 30 octombrie 2013 23:58:38
Problema Sortare prin comparare Scor 20
Compilator c Status done
Runda Arhiva educationala Marime 0.85 kb
#include "stdio.h"
#include "stdlib.h"

int v[500001],n;

void qs(int s,int d)
{
    if(s<d){
        int aux;
        int i=s;
        int j=d;
        int  pivot = v[rand()%s+d];

        while(i<=j){

            while(v[i]<pivot){
                i++;
            }
            while(v[j]>pivot){
                j--;
            }
            if(i<=j){
                aux=v[i];
                v[i]=v[j];
                v[j]=aux;
                i++;
                j--;
            }
        }
        qs(s,j);
        qs(i,d);
    }
}
int main()
{
    freopen("algsort.in", "r", stdin);
    freopen("algsort.out", "w", stdout);

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

    qs(1, n);

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