Hay varias diferencias, pero la más importante es probablemente la velocidad. Aquí hay un ejemplo simple pero muy poderoso:
Digamos que tengo una serie (ordenada) de números. Esta matriz tiene 2 mil millones (2.000.000.000) de elementos. Ahora quiero encontrar un cierto valor x en la matriz, o informar si no se encuentra.
Un mal algoritmo: simplemente recorreré la matriz de principio a fin, comparando cada valor uno por uno hasta que encuentre x o llegue al final. En el peor de los casos, tendré que hacer 2 mil millones de comparaciones por un solo valor. Si quiero hacer esto 100 veces, bueno … 200 mil millones de comparaciones. No es Buena idea
- Estoy aprendiendo algoritmos, ¿para qué sirve la notación Big O?
- Cómo inicializar una matriz
- ¿Cuál es el programa C para encontrar la subsecuencia repetida más larga en un texto dado?
- ¿Está bien inicializar una matriz que contiene fracciones en c ++?
- ¿Qué algoritmo debe usar Quora para ordenar las preguntas en las páginas de sesión?
Un buen algoritmo: podemos usar un enfoque más inteligente llamado búsqueda binaria y siempre encontrar x en un máximo de 31 comparaciones.
Así que solo nos ahorramos 1999999969 operaciones simplemente cambiando nuestro algoritmo a uno bueno. Bastante ordenado, ¿verdad?