C ++ Sort es una función asombrosa. La ordenación parece una tarea simple, pero no lo es especialmente cuando no tiene ninguna información disponible sobre los datos de entrada para su función de ordenación. La clasificación de C ++ es probablemente uno de los algoritmos de clasificación basados en comparación de propósito general más eficientes que existen.
- Quick Sort es el algoritmo central
- El peor rendimiento de Quicksort puede ser O (n ^ 2). Para evitar el peor de los casos, se registra la profundidad de recursión. Si la profundidad de recursión aumenta 2x log (n), entonces vuelve a la Clasificación de montón. Esto asegura un rendimiento óptimo. Como Amit Jain ya señaló, esta combinación de ordenación rápida y montón se llama ordenación introductoria.
- Las estrategias de selección de pivote también están optimizadas. Una de las optimizaciones más comunes es tomar la mediana de 3 pivotes aleatorios
- Cuando el tamaño de la matriz disminuye en el árbol de recursión, se utiliza el orden de inserción. Esto se debe a que la ordenación por inserción tiende a ser más rápida cuando el número de elementos es menor y la matriz está casi ordenada.