¿Qué ventajas tiene una ordenación por inserción sobre una ordenación por burbujas en la programación y por qué se ha propuesto?

Tanto el orden de inserción como el de burbuja son algoritmos de clasificación muy lentos: complejidad [matemática] O (n ^ 2) [/ matemática]. Idealmente, debería intentar utilizar algoritmos más rápidos como merge-sort y quick-sort.

Pero por el bien del aprendizaje, creo que Insertion Sort tiene una única ventaja sobre Bubble Sort y es Speed. No es significativamente muy rápido, pero en casos prácticos, la ordenación por inserción haría menos comparaciones que el algoritmo de ordenación por burbuja. Aquí es cómo: (El funcionamiento interno de ambos algoritmos de clasificación es un requisito previo)

En la clasificación de burbujas , el elemento más grande de la matriz burbujea hasta el final de la matriz después de cada pasada y, por lo tanto, ejecuta el bucle interno [matemático] (n – i – 1) [/ matemático] veces con el bucle externo ejecutándose durante [ matemáticas] (n-1) veces [/ matemáticas] . En resumen: el número total de iteraciones se convierte en [matemática] N ^ 2/2 [/ matemática] (ignorando exponentes menores).

Mientras que en el orden de inserción, en cualquiera de los pases comenzando desde el elemento 0 y actualmente en la posición i-ésima , puede detenerse en cualquier lugar entre [matemática] [0, i-1] [/ matemática] tan pronto como encuentre una más pequeña elemento que el actual. Por lo tanto, no es necesario iterar todos los elementos ‘i’ en este paso i-ésimo . Por lo tanto, la ordenación por inserción proporciona iteraciones ‘i’ para el paso i-ésimo en el peor de los casos, pero las iteraciones reales son iteraciones i / 2 en un caso promedio. Como el bucle externo se está ejecutando [matemática] (n-1) veces [/ matemática] , las comparaciones totales se convierten en [matemática] (0 + 1 + 2…. + N-1) / 2 [/ matemática] para el caso promedio. Que es [matemática] N ^ 2/4 [/ matemática] en total. Esto hace que la ordenación por inserción sea un poco más rápida que la ordenación por burbujas.

La ordenación de burbujas siempre trabaja el elemento actual para burbujear hasta el final, pero la ordenación por inserción puede o no hundir el elemento actual en la primera posición. Latter está buscando la posición “correcta”, no el índice 0.

More Interesting

Cómo hacer un sistema de filtrado colaborativo con Django como back-end

El comportamiento emergente se encuentra en el núcleo de las ciencias físicas y de la vida: posiblemente por conveniencia computacional. ¿La teoría de la complejidad ofrece ideas aquí?

¿Cuál es el algoritmo de aprendizaje automático más útil para Google?

¿Qué algoritmo se usa para contar la cantidad de personas en un video?

¿Cómo resolver el problema de corchetes en SPOJ (SPOJ: SQRBR)?

¿Qué es la notación O grande? ¿Y deberían saberlo los programadores principiantes?

¿Debo compartir un nuevo algoritmo de clasificación que escribí? ¿Existe algún potencial monetario en un algoritmo? De ser así, ¿cómo capitalizo?

Con la complejidad de O (n) u O (1) u O (log n), ¿cómo encuentro cuándo se romperá una bola rompible cuando se lance desde un piso de un edificio que tiene más de 100 pisos?

¿Qué tan rápido irá un bote de semi desplazamiento de 24.5 m LWL x 6.4 m con una viga de 80 t con 1200 hp? ¿Tiene actualmente 2700 hp y pesa 85 t y va a 34 kts?

¿Por qué debería aprender algoritmos antes de entrar en la programación?

Cómo calcular dos nodos distantes mínimos a partir de dos conjuntos de nodos en un gráfico

¿Cuál es un ejemplo de un problema causado por la escritura dinámica en la programación?

¿Cómo puedo evitar las técnicas de fuerza bruta?

¿Qué algoritmos se usan para calcular logaritmos?

¿Las personas aprenden algoritmos antes de aprender JavaScript?