Con literalmente docenas de algoritmos de clasificación disponibles , determinar qué funciona mejor con su sistema dependerá de la comparación de varios factores , como el tamaño de la lista , la velocidad o la complejidad del algoritmo, y si va a utilizar una clave para clasificar . Complejidad
La complejidad de un algoritmo de clasificación se mide por O ( n), o el "orden de n ", donde n es el tamaño de la lista. Mide el número de pases que se necesita para ordenar la lista y calcula su mejor momento , lo peor y promedio para hacerlo. Complejidades comunes incluyen N como un mejor de los casos para las clases tales como la ordenación por inserción y la cáscara especie , n log n , ( utilizando un logaritmo en base 2 , no una base - 10 ) , que es la complejidad para el tipo de mezcla y heapsort , y n ² , que es más lenta que la primera vez y es la velocidad de ordenación por selección
lista Condición
veces usted sabrá cómo se organizan los elementos no ordenados en una lista. : Por ejemplo , si están casi ordenados , en orden inverso , o una lista con algunos artículos únicos . Este conocimiento ayuda a seleccionar un algoritmo eficiente para solucionar el problema . Por ejemplo , el uso de la ordenación por inserción para ordenar una lista en orden inverso tiene una duración de n ² , mientras que pila de clasificación se puede hacer más rápido , en el n log n tiempo. En una lista que está casi resuelto , la ordenación por inserción es más rápido que el almacenamiento dinámico de clasificación . Si la lista contiene un conjunto completamente al azar de datos , seleccione un algoritmo con un caso de complejidad media de n log n tiempo de funcionamiento , tales como pila de clasificación , ordenación rápida o fusionar especie .
Lista Tamaño
Algunos algoritmos son más difíciles de usar que otros, por lo que el número de elementos en una lista y con qué frecuencia usted necesita para ordenar puede ayudar a determinar el algoritmo que se elija . Géneros como la ordenación por inserción son rápidos y funcionan bien al ordenar listas más pequeñas , y son fáciles de implementar, pero son lentos con listas grandes. Ordena que utilizan un divide y vencerás algoritmo como quicksort e incorpórate tipo son más difíciles de implementar , pero las listas de clase más grandes más rápido que en los casos en promedio.
Estabilidad
Estabilidad algoritmo describe si el tipo mantiene el orden de los elementos en función de una clave de clasificación. Por ejemplo , utilizando el primer carácter como clave para una lista que tiene "John ", " Steve" y " Jim" en ese orden, un establo tipo de algoritmo de la lista de " John ", "Jim" y " Steve ", mientras que un algoritmo inestable puede o no puede resolver " Jim " antes de "John ". Combinar especie , tipo de inserción y burbuja tipo son estables , mientras que todos los algoritmos de tipo concha , ordenación por selección y pila de clasificación no son .