Duda con ordenamiento quicksort

Iniciado por Blaster, 13 Abril 2013, 22:13 PM

0 Miembros y 1 Visitante están viendo este tema.

Blaster

Hola quisiera que me ayuden a comprender el funcionamiento de metodo de
ordenamiento quicksort, ya que me rompo la cabeza trantado de hacerlo
Por ahora ya lo voy entendiendo mas o menos; pero la parte de la funcion recursiva no se me aclara del todo aca el codigo de las dos funciones:

int colocar(int *v, int b, int t)
  {
      int i;
      int pivote, valor_pivote;
      int temp;
   
      pivote = b;
      valor_pivote = v[pivote];
      for (i=b+1; i<=t; i++){
          if (v[i] < valor_pivote){
                  pivote++;    
                  temp=v[i];
                  v[i]=v[pivote];
                  v[pivote]=temp;
   
          }
      }
      temp=v[b];
      v[b]=v[pivote];
      v[pivote]=temp;
      return pivote;
  }
 
  void Quicksort(int* v, int b, int t)
  {
       int pivote;
       if(b < t){
          pivote=colocar(v, b, t);
          Quicksort(v, b, pivote-1);
          Quicksort(v, pivote+1, t);
       }  
  }


Por favor si no es mucha molestia, agregen comentarios a cada lineas del codigo
para saber que hacen exactamente; porfavor les agradeceria mucho ya que me interesa mucho esto  :)

Blaster

#1
Hola encontre un manual donde lo explican muy bien, luego les comento y creo
que publicare algun tipo de tutorial para que a atros le pueda servir  :laugh:

Saludos..

Blaster

#2

leosansan