Aprender

0
Lección ~12 min

Búsqueda Lineal vs Búsqueda Binaria

Compara dos algoritmos de búsqueda y descubre por qué los datos ordenados lo cambian todo.

Dos formas de encontrar un valor

La búsqueda lineal revisa los elementos uno por uno — funciona en cualquier lista. La búsqueda binaria divide repetidamente a la mitad una lista *ordenada*, descartando la mitad de candidatos en cada paso. Inicia la carrera inferior y observa la enorme diferencia de eficiencia.

The race · target 34

Linear search O(n)

0 steps

7
9
13
13
24
34
34
34
38
39
43
50
54
61
66
68
69
70
75
76
81
87
92
92

Binary search O(log n) · needs sorted data

0 steps

7
9
13
13
24
34
34
34
38
39
43
50
54
61
66
68
69
70
75
76
81
87
92
92
step 0 / 6

La intuición de la guía telefónica

Para buscar un apellido en una guía telefónica, nadie lee desde la página 1. Abres la mitad, compruebas si el apellido está antes o después, y descartas la mitad del libro. Repites el proceso.

Eso es la búsqueda binaria: cada paso reduce el trabajo a la mitad. Un millón de registros ordenados requieren a lo sumo ~20 comparaciones. La búsqueda lineal en los mismos datos tomaría, en promedio, 500,000 pasos. Esa es la diferencia entre O(log n) y O(n).

Búsqueda binaria en Python
Python
def binary_search(values, target):
    low, high = 0, len(values) - 1
    while low <= high:
        mid = (low + high) // 2
        if values[mid] == target:
            return mid
        elif values[mid] < target:
            low = mid + 1
        else:
            high = mid - 1
    return -1

El balance (trade-off)

La búsqueda binaria es exponencialmente más rápida, pero exige que la lista esté ordenada. Ordenar cuesta O(n log n); por tanto, si buscas una sola vez en datos desordenados, la búsqueda lineal es adecuada. Si vas a realizar *múltiples* búsquedas, ordena una sola vez y busca con binaria para siempre.

Saber evaluar balances como este es el corazón del diseño algorítmico profesional.

Puntos clave

  • Búsqueda lineal: O(n), funciona con cualquier lista desordenada.
  • Búsqueda binaria: O(log n), requiere datos ordenados previamente.
  • Cada paso binario descarta la mitad exacta de los candidatos restantes.
  • Elegir un algoritmo implica comprender las características y demandas de tus datos.

¿Listo para continuar?

¡Todos los ejercicios completados! Marca la lección como terminada para guardar tus puntos de XP y desbloquear la siguiente.