La clasificación de elementos en una lista es una tarea rutinaria y, a menudo, requiere mucho tiempo. El término clasificación generalmente se refiere a organizar los elementos en una lista en orden ascendente o descendente en función de una relación de orden preespecificada. La clasificación a menudo está destinada a la búsqueda, que es otra actividad fundamental en el procesamiento de datos. Imagine lo difícil que hubiera sido buscar una palabra en un diccionario si las palabras que contiene no hubieran sido organizadas u ordenadas. Esta es la razón por la que las entradas en un diccionario se mantienen en un orden alfabético estándar. Numerosas tareas y cálculos se hacen sin esfuerzo simplemente por la clasificación. Y aquí es donde los algoritmos de clasificación vienen a la imagen..
Un algoritmo de clasificación no es más que un método para organizar los elementos de una lista en un orden específico, como el valor más bajo a más alto, el valor más alto a más bajo, el orden creciente, el orden decreciente, el orden alfabético, etc. Son de orden numérico y lexicográfico. Los algoritmos a menudo utilizan la clasificación como una subrutina clave. Existe una amplia variedad de algoritmos de clasificación utilizados en cada uno, y cada uno emplea un amplio conjunto de técnicas. Un algoritmo tan popular pero igualmente poderoso es el algoritmo Dividir y Conquistar, que es un algoritmo basado en recursión de múltiples ramificaciones. La clasificación rápida y la clasificación combinada son los dos algoritmos de uso común basados en los algoritmos Dividir y Conquistar.
Quick Sort es un algoritmo de clasificación altamente eficiente pero efectivo basado en el enfoque de dividir y vencer que es bastante similar al enfoque dinámico en el que un problema se divide en dos o más subproblemas y luego se resuelve de forma recursiva. Si el tamaño de los subproblemas es lo suficientemente pequeño, entonces se resuelven de manera sencilla y sin complicaciones. También llamado orden de intercambio de particiones, el algoritmo de clasificación rápida divide la lista para ser ordenada en tres partes principales: 1) Elemento de pivote (elementos centrales), 2) elementos menores que el pivote, y 3) elementos mayores que el pivote. El pivote en sí se mueve entre los dos grupos a su posición final y luego, QUICK SORT se aplica recursivamente..
Merge Sort es otro algoritmo de clasificación de propósito general basado en la técnica de dividir y conquistar. Es uno de los algoritmos de clasificación más respetados y populares diseñados para ser utilizados de manera eficiente para clasificar los datos que se almacenan externamente en un archivo. Ofrece el comportamiento de O (n log n) en el peor de los casos al usar O (n) almacenamiento adicional. Divide una colección 'A' en dos colecciones más pequeñas, cada una de las cuales se clasifica. En la fase final, estas dos colecciones ordenadas se fusionan de nuevo en una sola colección de tamaño n. Esta será la lista ordenada. El algoritmo es bastante rápido y también es un ordenamiento estable, y es ideal para listas enlazadas.
- Tanto Quick Sort como Merge Sort son los algoritmos de clasificación basados en dividir y vencer con el mismo principio básico: dividir un problema en dos o más subproblemas y luego resolverlos de forma recursiva. Sin embargo, difieren en los procedimientos de fusión y en términos de rendimiento. La clasificación rápida es generalmente mejor y más rápida que otros algoritmos de clasificación, incluida la clasificación de combinación cuando se trata de conjuntos de datos pequeños, mientras que la clasificación de combinación mantiene la coherencia independientemente del tipo de conjuntos de datos. La clasificación rápida se prefiere idealmente para los arreglos, mientras que la clasificación de combinación es idealmente preferida para listas enlazadas.
- La clasificación en el algoritmo de ordenación rápida se realiza de forma recursiva, y cada llamada recursiva requiere un lugar de pila. No requiere espacio adicional para la fusión, excepto un solo espacio de memoria para la fusión. Como es un algoritmo de clasificación en el lugar, no se requiere espacio adicional para realizar la clasificación. De hecho, utiliza la misma matriz al dividir y fusionar la matriz. Por otro lado, en Merge Sort, hay varias formas de representar datos en un archivo o como una matriz, por lo que necesita áreas de trabajo como subarchivos o matrices del mismo tamaño que requieren espacio adicional..
- El comportamiento del caso más desfavorable para la clasificación rápida ocurre cuando la partición está desequilibrada, lo que depende de qué elementos se utilizan para la partición, en cuyo caso, el algoritmo se ejecuta de forma asintótica tan lentamente como la ordenación por inserción. El peor desempeño de la ordenación rápida es O (n2) y se deja como ejercicio. Sin embargo, puede evitarse eligiendo el pivote correcto. El peor de los casos de Combinación de clasificación, por otro lado, ocurre cuando tiene que hacer el número máximo de comparaciones. Teniendo en cuenta el rendimiento lineal para la fusión, el peor caso de rendimiento de la clasificación de mezcla es O (n log2 norte).
- Si bien los algoritmos de Clasificación rápida y Clasificación por combinación se basan en el enfoque de división y conquista para la clasificación, difieren según los métodos utilizados para realizar la división y los procedimientos de combinación. Para la Clasificación rápida, la mayor parte del trabajo consiste en dividir la lista en dos sublistas que tienen lugar antes de que se ordenen las sublistas. Para la clasificación de mezcla, la mayor parte del trabajo consiste en combinar dos sublistas que tienen lugar después de que se ordenan las sub-listas. La clasificación combinada requiere una matriz temporal para fusionar dos subarreglas, mientras que la clasificación rápida no requiere espacio adicional en la matriz, por lo que es más eficiente en espacio que la clasificación Marge.
Los algoritmos de Clasificación rápida y Clasificación de combinación se basan en el enfoque de dividir y conquistar para la clasificación. Sin embargo, difieren según los métodos utilizados para realizar la división y los procedimientos de combinación. Básicamente trabajan sobre el mismo principio: dividir un problema en dos o más subproblemas y luego resolverlos de forma recursiva. Merge Sort es más eficiente que Quick Sort en el peor de los casos, pero los dos son igual de eficientes en el caso promedio. Pero Quick Sort es más eficiente en espacio que Merge Sort. Entonces, Quick Sort es sin duda más rápido y mejor que Merge Sort, pero se vuelve ineficiente en algunas situaciones, como cuando se trata de comparaciones..