¿Entre aquellos? ¿Por nada? Ninguno tan bien como todos.
Por ejemplo, si sigue agregando y eliminando dentro / fuera de una lista vinculada, el tipo de inserción hará mucho menos trabajo que los demás. Pero si tiene una matriz con una disposición aleatoria de valores, entonces rápido posiblemente funcionará más rápido. Si la matriz ya está ordenada en su mayoría, el montón probablemente superará rápidamente.
Además, ¿qué es más importante? ¿La velocidad? La cantidad de recursos? ¿Cómo se leen / escriben los datos? ¿Debe terminar siempre dentro de un tiempo establecido o podría cambiar mejor velocidad generalmente por un peor rendimiento en algunos casos raros?
- ¿Por qué algún algoritmo tiene la misma salida?
- Cómo implementar la idea de algoritmos en MATLAB
- ¿Qué te dirías a ti mismo cuando recién comenzaste a programar, aprender algoritmos?
- ¿De qué manera es el capitalismo como un algoritmo?
- ¿Cómo funciona Swype?
No hay “mejor”. Solo mejor para algunas circunstancias. En general, una ordenación rápida tiende a ser lo suficientemente rápida. En promedio, es más rápido que la mayoría, y donde va en forma de pera no es algo que ocurra a menudo.
Aquí está la cosa: Olvídate de tratar de aprender cuál es el mejor. Eso es un arenque rojo. Más bien trate de entender lo que están haciendo. Trata de entender lo que sucederá en varios escenarios. Esto es REALMENTE lo que buscas cuando aprendes algoritmos. No recitarlos, ni siquiera saber cuál usar. Pero mucho más importante es entender por qué funcionan de la manera en que lo hacen. Por la razón expresa de que puede deducir ideas similares sobre otros problemas, cosas diferentes a ordenar una lista de números.
Es decir, aprende a razonar y responder a un problema. Aprendes a entender qué y por qué algo funciona mejor de una manera que de otra. Y por qué los roles pueden revertirse en otras situaciones. De este modo, aprende a “programar”, no solo a escribir código. Porque eso es de lo que se trata la programación, no escribir código que compila, ese es solo el resultado final, no el medio para llegar allí.