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 :)
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..
Lo termine para los interesados lo pueden ver aqui ;)
http://foro.elhacker.net/programacion_cc/aporte_explicacion_del_funcionamiento_de_quicksort-t388372.0.html (http://foro.elhacker.net/programacion_cc/aporte_explicacion_del_funcionamiento_de_quicksort-t388372.0.html)
Saludos..
Ejemplo más claro difícil de encontrar:
http://es.wikipedia.org/wiki/Quicksort
Saluditos!. ...(http://st.forocoches.com/foro/images/smilies/aaaaa.gif)