Todas las complejidades que proporcionó son verdaderas, sin embargo, se dan en notación Big O , por lo que se omiten todos los valores y constantes aditivos.
Para responder a su pregunta, debemos centrarnos en un análisis detallado de esos dos algoritmos. Este análisis se puede hacer a mano o en muchos libros. Usaré los resultados de Knuth's Art of Computer Programming .
Número promedio de comparaciones:
- Tipo de burbuja :12(N2−NlnN−(γ+ln2−1)N)+O(N−−√)
- Tipo de inserción :14(N2−N)+N−HN
- selección :(N+1)HN−2N
Ahora, si trazas esas funciones obtienes algo como esto:
Como puede ver, la clasificación de burbujas es mucho peor a medida que aumenta el número de elementos, a pesar de que ambos métodos de clasificación tienen la misma complejidad asintótica.
Este análisis se basa en el supuesto de que la entrada es aleatoria, lo que podría no ser cierto todo el tiempo. Sin embargo, antes de comenzar a ordenar, podemos permutar aleatoriamente la secuencia de entrada (usando cualquier método) para obtener el caso promedio.
Omití el análisis de la complejidad del tiempo porque depende de la implementación, pero se pueden usar métodos similares.
Bartosz Przybylski
fuente
El costo asintótico, o notación matemática , describe el comportamiento limitante de una función ya que su argumento tiende al infinito, es decir, su tasa de crecimiento.O
La función en sí misma, por ejemplo, el número de comparaciones y / o intercambios, puede ser diferente para dos algoritmos con el mismo costo asintótico, siempre que crezcan con la misma tasa.
Más específicamente, la ordenación de burbujas requiere, en promedio, intercambios por entrada (cada entrada se mueve en función de los elementos desde su posición inicial a su posición final, y cada intercambio implica dos entradas), mientras que la selección de selección requiere solo (una vez que se ha encontrado el mínimo / máximo, se intercambia una vez al final de la matriz).1n/4 1
En términos del número de comparaciones, la clasificación de burbujas requiere comparaciones, donde es la distancia máxima entre la posición inicial de una entrada y su posición final, que generalmente es mayor que para valores iniciales distribuidos uniformemente. Sin embargo, la selección de selección siempre requiere comparaciones.k n / 2 ( n - 1 ) × ( n - 2 ) / 2k×n k n/2 (n−1)×(n−2)/2
En resumen, el límite asintótico le brinda una buena idea de cómo crecen los costos de un algoritmo con respecto al tamaño de entrada, pero no dice nada sobre el rendimiento relativo de diferentes algoritmos dentro del mismo conjunto.
fuente
La ordenación de burbujas utiliza más tiempos de intercambio, mientras que la ordenación por selección evita esto.
Cuando se utiliza la selección ordenar, intercambia
n
veces como máximo. pero cuando se usa el tipo burbuja, casi se intercambian*(n-1)
. Y obviamente, el tiempo de lectura es menor que el tiempo de escritura incluso en la memoria. Se puede ignorar el tiempo de comparación y otro tiempo de ejecución. Por lo tanto, los tiempos de intercambio son el cuello de botella crítico del problema.fuente