Cuando hablamos de la eficiencia de los algoritmos, los comparamos de acuerdo con su complejidad de peor caso o [con menos frecuencia] su complejidad de caso promedio.
Por ejemplo, en el peor de los casos, para buscar un elemento en una matriz ordenada, la búsqueda lineal requerirá verificar todos los elementos de la matriz [porque el último elemento podría coincidir con el número dado, o si el número dado no está presente, compare con todos los elementos de la matriz].
Por otro lado, la búsqueda binaria requiere menos comparaciones en el peor de los casos. Dada una matriz ordenada y un número para buscar, la búsqueda binaria elimina el 50% de los elementos en cada comparación. Entonces, si comienza con, digamos 100 elementos, después del primer paso, elimina 50 elementos y solo necesita buscar los 50 elementos restantes. En el siguiente paso, eliminará 25 elementos más y deberá buscar los 25 elementos restantes, y así sucesivamente. En general, el número de comparaciones es proporcional a [math] \ log n [/ math], en el peor de los casos.
- ¿Por qué son importantes las estructuras de datos y los algoritmos?
- ¿Cómo se resuelve The Great Ball (SPOJ - BYTESE2)? ¿A dónde voy mal?
- ¿Qué tipo de algoritmos de reconocimiento de imagen existen?
- ¿Qué es un problema de horario en la programación? ¿Cómo se convierte en un problema NP difícil?
- ¿Cuáles son las características de los árboles de coníferas y cuáles son algunas plantas / árboles con aspectos similares?
De hecho, para un ejemplo práctico, piense en cómo usa el diccionario. ¿Lo abre en alguna página y luego busca la palabra deseada después o antes de esa página, o escanea cada palabra en el diccionario a partir de la página 1? La experiencia práctica también dice que la búsqueda binaria es más eficiente.