Bueno pues este algoritmo al principio resulta un poco complicado de entender pero en realidad no es tan complicado.
Para comprenderlo mas facilmente mira el siguiente video:
Para comprender bien como funciona el quicksort hay tener claros estos conceptos:
Pivote: Es un numero del arreglo que tomaremos como referencia para reorganizar el arreglo de numeros y ordenarlo. En pocas palabras tomamos todos los numeros mayores que el que hayamos elegido como pivote y los colocamos a la derecha del mismo, y todos los que sean menores que este los colocamos del lado izquierdo.
Punteros izquierdo y derecho: El quicksort utiliza 2 punteros como referencia, uno izquierdo y uno derecho, normalmente cuando se ordena de menor a mayor el izquierdo simboliza el lado de números menores y el derecho los números mayores. A medida que analizamos el arreglo, los punteros se acercan el uno a otro y cuando se encuentran en una ubicación se coloca en esta el pivote y se separa el arreglo en 2 arreglos mas pequeños. Posteriormente se vuelve a aplicar el algoritmo a los arreglos mas pequeños hasta que se logre ordenar la secuencia tal y como se ha visto en el vídeo anterior.
Descarga:
Instrucciones:
La clase Ordenador posee un método que se llama quicksort, lo que hace es organizar un arregla unidimensional de menor a mayor utilizando
el algoritmo de quicksort. Para ponerlo a prueba puedes utilizar este codigo en tu metodo Main, mandando a llamar el metodo quicksort de la clase y organizando un arreglo cualquiera.
int array[] ={3,7,3,4,12,6,3,7,4};
Ordenador a = new Ordenador();
a.quicksort(array);
El programa esta diseñado para manejar datos de tipo int, por lo que solo acepta arreglos de numeros tipo entero.
Espero que te sirva, no olvides dejar tus comentarios.