Un algoritmo de clasificación es un algoritmo que hace que se organicen en un cierto orden. La tarea fundamental es poner los elementos en el orden deseado para que los registros se reordenen para facilitar la búsqueda .
A continuación se muestra una descripción detallada de cuándo usar qué algoritmos de clasificación para un mejor rendimiento:
- Clasificación de selección :
este algoritmo de clasificación clasifica una array encontrando repetidamente el elemento mínimo (considerando el orden ascendente) de la parte sin clasificar y colocándolo al principio. El algoritmo mantiene dos subarreglos en un arreglo dado, el subarreglo que ya está ordenado y el subarreglo restante que no está ordenado. En cada iteración del ordenamiento por selección, el elemento mínimo (considerando el orden ascendente) del subarreglo no ordenado se selecciona y se mueve al subarreglo ordenado.Podemos usar la ordenación por selección según las siguientes restricciones:
- Cuando la lista es pequeña. Como la complejidad temporal de la ordenación por selección es O(N 2 ) , lo que la hace ineficaz para una lista grande.
- Cuando el espacio de memoria es limitado porque realiza el mínimo número posible de intercambios durante la clasificación.
- Bubble Sort :
este algoritmo de clasificación es el algoritmo de clasificación más simple que funciona intercambiando repetidamente los elementos adyacentes si están en el orden incorrecto. Si tenemos un total de N elementos, entonces debemos repetir el proceso anterior N-1 veces.Podemos usar Bubble Sort según las siguientes restricciones:
- Funciona bien con grandes conjuntos de datos donde los elementos están casi ordenados porque solo se necesita una iteración para detectar si la lista está ordenada o no. Pero si la lista está desordenada en gran medida, este algoritmo es válido para conjuntos de datos o listas pequeños.
- Este algoritmo es más rápido en un conjunto de datos extremadamente pequeño o casi ordenado.
- Clasificación por inserción :
este algoritmo de clasificación es un algoritmo de clasificación simple que funciona de la misma manera que clasificamos las cartas en nuestras manos. Coloca un elemento sin clasificar en su lugar adecuado en cada iteración.Podemos usar la ordenación por inserción según las siguientes restricciones:
- Si los datos están casi ordenados o cuando la lista es pequeña ya que tiene una complejidad de O(N 2 ) y si la lista está ordenada, se deslizará un número mínimo de elementos para insertar el elemento en su ubicación correcta.
- Este algoritmo es estable y tiene un caso de ejecución rápida cuando la lista está casi ordenada.
- El uso de la memoria es una restricción ya que tiene una complejidad de espacio de O(1).
- Merge Sort :
este algoritmo de clasificación se basa en el algoritmo Divide and Conquer . Divide la array de entrada en dos mitades, se llama a sí mismo para las dos mitades y luego fusiona las dos mitades ordenadas.
La función merge() se utiliza para fusionar dos mitades. merge(arr, l , m, r) es un proceso clave que asume que arr[l..m] y arr[m+1..r] están ordenados y fusiona los dos subarreglos ordenados en uno solo.Podemos usar Merge Sort según las siguientes restricciones:
- La ordenación por combinación se usa cuando la estructura de datos no admite el acceso aleatorio, ya que funciona con acceso secuencial puro que son iteradores directos, en lugar de iteradores de acceso aleatorio.
- Se usa ampliamente para la clasificación externa, donde el acceso aleatorio puede ser muy, muy costoso en comparación con el acceso secuencial.
- Se utiliza cuando se sabe que los datos son datos similares.
- La ordenación por combinación es rápida en el caso de una lista enlazada.
- Se utiliza en el caso de una lista enlazada como en la lista enlazada para acceder a cualquier dato en algún índice que necesitamos para atravesar desde el encabezado hasta ese índice y fusionar la ordenación accede a los datos secuencialmente y la necesidad de acceso aleatorio es baja.
- La principal ventaja del ordenamiento por fusión es su estabilidad, los elementos comparados conservan igualmente su orden original.
- Clasificación rápida :
este algoritmo de clasificación también se basa en el algoritmo Divide and Conquer. Selecciona un elemento como pivote y divide la lista dada alrededor del pivote seleccionado. Después de particionar la lista sobre la base del elemento pivote, Quick se aplica de nuevo recursivamente a dos sublistas, es decir, la sublista a la izquierda del elemento pivote y la sublista a la derecha del elemento pivote.Podemos usar Quick Sort según las siguientes restricciones:
- La ordenación rápida es la más rápida, pero no siempre es O(N*log N) , ya que en el peor de los casos se convierte en O(N 2 ) .
- Quicksort es probablemente más efectivo para conjuntos de datos que caben en la memoria. Para conjuntos de datos más grandes, resulta ser ineficiente, por lo que se prefieren algoritmos como la ordenación por combinación en ese caso.
- Quick Sort in es una clasificación en el lugar (es decir, no requiere ningún almacenamiento adicional), por lo que es apropiado usarlo para arreglos.
Publicación traducida automáticamente
Artículo escrito por ayushivadhera y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA