¿Por qué se han desarrollado los algoritmos de ordenamiento O (n ^ 2) (como el ordenamiento por inserción y el ordenamiento por burbuja) y para qué se utilizan?

Cuando hablamos de análisis asintótico, observamos el crecimiento del tiempo de ejecución ignorando las constantes dependientes de la máquina y otros factores para poder comparar el rendimiento de un algoritmo independientemente de la arquitectura de la computadora.

Asintóticamente, un algoritmo [matemático] O (n) [/ matemático] siempre vencerá a [matemático] O (n ^ 2) [/ matemático] para una cantidad suficiente [matemática] n [/ matemático]. Pero para un tamaño de entrada más pequeño , un algoritmo [matemático] O (n ^ 2) [/ matemático] puede funcionar bastante mejor que [matemático] O (n) [/ matemático].

Ejemplo :
Para un tamaño de entrada más pequeño, la ordenación por inserción supera a Quicksort y otros algoritmos de ordenación [math] O (n * logn) [/ math] como Merge sort y Heapsort. Es por eso que incluso std :: sort implementa el orden de inserción para un tamaño de entrada más pequeño.

Los algoritmos se desarrollaron porque son fáciles de diseñar y codificar. Parece muy improbable que si se dispusiera a ordenar una pequeña serie de valores que concebiría de clasificación rápida en su primer intento. Jon Bentley tiene algunas cosas interesantes que decir al hablar sobre cómo hacer una implementación práctica de Good sort.

Bubblesort tiene muy pocas posibilidades además de tener un nombre pegadizo. El tipo de inserción es la mejor opción según lo analizado por Knuth en su volumen 3.

Cuando trabajo en un lenguaje que no proporciona una rutina de clasificación, dada la necesidad de ordenar una pequeña matriz (quizás una docena de elementos), he escrito un código simple O (n ** 2) para hacer la clasificación y estoy contento con Los resultados.

Aprendes a gatear antes de caminar y correr.

La ordenación por inserción en listas vinculadas casi ordenadas se ejecuta en tiempo O (n)

Básicamente, tienes que entender las necesidades de todos los algoritmos … No solo mires el Promedio. Caso y peor caso. Piensa en el mejor caso. Eso es unico. Finalmente, si ha ordenado la matriz y necesita ordenarla. Va a tomar o (n). La mejor manera de identificar que la lista ya está ordenada …

La ordenación por inserción funciona mejor que la clasificación rápida ([math] O (n lg n) [/ math]) para un número menor de elementos en las matrices.