¿Cómo funciona la técnica quicksort en el trabajo de java?

Aquí, usted descubrirá cómo funciona en realidad una de las técnicas de clasificación más utilizados en Java. Esta técnica se llama Quicksort, y es un uso muy ingeniosa de recursividad.

Para la mayoría de nosotros, encontrar la manera de algoritmos de ordenación, como el trabajo Quicksort es un mero ejercicio intelectual. La API de Java ya ha sorting incorporado.

La técnica Quicksort ordena una matriz de valores mediante el uso de la recursividad. Sus pasos básicos son así:

  1. Elija un valor arbitrario que se encuentra dentro del rango de valores de la matriz.

    Este valor es el punto de giro. La forma más común para elegir el punto de pivote es simplemente escoger el primer valor de la matriz. La gente ha escrito títulos de doctorado sobre las formas más sofisticadas para elegir un punto de giro que se traduce en más rápido de clasificación. Seguir con el uso de el primer elemento en la matriz.

  2. Reordenar los valores de la matriz de modo que todos los valores que son menores que el punto de pivote están en el lado izquierdo de la matriz y todos los valores que son mayores que o igual al punto de pivote están en el lado derecho de la matriz.

    los valor de pivote indica el límite entre el lado izquierdo y el lado derecho de la matriz. Probablemente no será el punto muerto, pero eso no importa. Este paso se llama partición, y los lados izquierdo y derecho de las matrices son particiones.

  3. Ahora tratar cada una de las dos secciones de la matriz como una matriz separada, y empezar de nuevo con el paso 1 para esa sección.

    Esa es la parte recursiva del algoritmo.

La parte más difícil del algoritmo Quicksort es el paso de particionado, que debe reorganizar la partición de modo que todos los valores que son menores que el punto de giro están a la izquierda y todos los elementos que son mayores que el punto de giro están a la derecha. Supongamos que la matriz tiene estos diez valores:

38 17 58 22 69 31 88 28 86 12

Aquí el punto de giro es de 38 años, y la tarea de la etapa de partición es la de reorganizar la matriz a algo como esto:

17 12 22 28 31 38 88 69 86 58

Observe que los valores aún están fuera de orden. La matriz, sin embargo, se ha dividido en torno al valor 38: Todos los valores que son de menos de 38 son a la izquierda de 38, y todos los valores que son mayores que 38 están a la derecha de 38.

Ahora se puede dividir la serie en dos particiones en el valor 38 y repita el proceso para cada lado. El valor de pivote en sí va con la partición izquierda, por lo que la partición de la izquierda es la siguiente:

17 12 22 28 31 38

Esta vez, el paso de particionado recoge 17 como el punto de pivote y reordena los elementos de la siguiente manera:

12 17 22 28 31 38

Como puede ver, esta porción de la matriz está ordenada. Desafortunadamente, Quicksort no se da cuenta de que en este punto, por lo que toma un poco más de recursiones para estar seguro. Pero ese es el proceso básico.




» » » » ¿Cómo funciona la técnica quicksort en el trabajo de java?