terça-feira, 27 de setembro de 2011

FUNÇÃO QUICKSORT PARA O 4º PERÍODO DE SISTEMAS

void quicksort( int *vet, int n ) {

     int i;
     int aux = 0;
     int posesq = 0;
     int posdir = n-1;
     int pivo = vet[n/2];    
     do{
          while(vet[posesq]<pivo)posesq++;
          while(vet[posdir]>pivo)posdir--;        
          if( posdir >= posesq ){            
              aux=vet[posesq];
              vet[posesq]=vet[posdir];
              vet[posdir]=aux;
              posdir--;
              posesq++;
          }
     }while(posdir>=posesq);
         
     if (posdir) {
          quicksort(vet,posdir+1);
     }    
     if(posesq<n-1){
         quicksort(vet + posesq, n - posesq );
     }
}      

Nenhum comentário:

Postar um comentário