Cod sursa(job #1019382)

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

int v[500001],n;
FILE *f,*g;
void qs(int s,int d)
{
    if(s<d){
        int i,j;
        int aux;
        int pivot;
        i=s;
        j=d;
        pivot = v[(i+j)/2];
        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--;}
            if(s<j) qs(s,j);
            if(i<d) qs(i,d);

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

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

    qs(0, n-1);

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