En el Capítulo 5, viste un método de clasificación simple llamado
clasificación de burbujas. Se mencionó en ese momento que hay
calificaciones significativamente mejores. Aquí desarrollará una versión de uno de los mejores: clasificación rápida (Quicksort).
Clasificación rápida, inventada y nombrada por C.A.R. Hoare, es el mejor algoritmo de clasificación de propósito general disponible actualmente. No pude mostrarlo en el Capítulo 5 porque la mejor implementación de clasificación rápida se basa en la recursividad. La versión que desarrollaremos ordena una serie de caracteres, pero la lógica se puede adaptar para ordenar cualquier tipo de objeto.
La clasificación rápida se basa en la idea de particiones. El procedimiento general implica seleccionar un valor, llamado comparar, y luego dividir la matriz en dos secciones. Todos los elementos mayores o iguales al valor de la partición se insertan en un lado y los más pequeños en el otro. Este proceso se repite para cada sección restante hasta que se ordene la matriz. Por ejemplo, dada la matriz fedacb y usando el valor d como comparación, el primer paso de clasificación rápida reorganizaría la matriz como se muestra a continuación:
F e d a c b inicial
Pasaje 1 b c a d e f
Este proceso se repite para cada sección, es decir, bca y def. Como puede ver, el proceso es esencialmente recursivo por naturaleza y, de hecho, la implementación más limpia de clasificación rápida es recursiva.
Puede seleccionar el valor de comparación de dos maneras. Puedes seleccionarlo aleatoriamente o encontrando el promedio de un pequeño conjunto de valores tomados de la matriz. Para obtener una clasificación óptima, debe seleccionar un valor que esté exactamente en el medio del rango de valores. Sin embargo, no es fácil hacer esto para la mayoría de los conjuntos de datos. El peor caso es cuando el valor seleccionado está en un extremo. Aun así, la clasificación rápida se ejecutará correctamente.
La versión de clasificación rápida que desarrollaremos selecciona el elemento central de la matriz como comparación.
Clasificación rápida:
Operación:
Demostración QSD
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3