Cod sursa(job #330807)

Utilizator AnDrEwBoYA Andrei AnDrEwBoY Data 11 iulie 2009 16:18:53
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.88 kb
#include<stdio.h>
int tablou[500000];

void quickSort(int st,int dr) 
{
    int temp,min,max,mijl;
    min = st;
    max = dr;
    mijl = tablou[(st + dr) / 2];
    do
    {
         while(tablou[min] < mijl) min++;
         while(tablou[max] > mijl) max--;
         if(min <= max)
         {
            temp = tablou[min];
            tablou[min++] = tablou[max];
            tablou[max--] = temp;                
         }
    }while(min <= max);
    if(st < max)
      quickSort(st,max);
    if(min < dr)
      quickSort(min,dr);
}

int main(void)
{
    int n;
    freopen("algsort.in","r",stdin);
    freopen("algsort.out","w",stdout);
    scanf("%d",&n);
    for(int i = 0; i < n; i++)
     scanf("%d",&tablou[i]);  
    quickSort(0,n-1);
    for(int i = 0; i < n; i++)
      printf("%d ",tablou[i]);  
    fclose(stdin); fclose(stdout);
    return 0;
}