Binary search es un algoritmo eficiente para encontrar un elemento específico en una lista ordenada. En lugar de revisar cada elemento uno por uno (como lo haría una búsqueda lineal), la búsqueda binaria divide repetidamente el rango de búsqueda a la mitad, reduciendo drásticamente el número de comparaciones necesarias.

¿Cómo funciona?

El algoritmo sigue estos pasos:

  1. Inicialización: Se definen dos índices, uno para el límite inferior (izquierda) y otro para el límite superior (derecha) de la lista.
  2. Cálculo del punto medio: Se encuentra el índice medio dividiendo la suma de los límites por dos:
    medio=izquierda+derecha2\text{medio} = \frac{\text{izquierda} + \text{derecha}}{2}
  3. Comparación:
    • Si el elemento en el punto medio es el objetivo, se devuelve el índice.
    • Si el objetivo es menor que el elemento en el medio, se ajusta el límite superior.
    • Si el objetivo es mayor, se ajusta el límite inferior.
  4. Repetición: El proceso continúa hasta que el elemento es encontrado o los límites se cruzan (lo que indica que el elemento no está en la lista).

Ejemplo en Python

 

# Implementación simple de búsqueda binaria
def busqueda_binaria(lista, objetivo):
    izquierda, derecha = 0, len(lista) - 1

    while izquierda <= derecha:
        medio = (izquierda + derecha) // 2
        if lista[medio] == objetivo:
            return medio
        elif lista[medio] < objetivo:
            izquierda = medio + 1
        else:
            derecha = medio - 1
    
    return -1

# Lista ordenada
datos = [1, 3, 5, 7, 9, 11, 13, 15]
objetivo = 7
resultado = busqueda_binaria(datos, objetivo)
print(f'Elemento encontrado en el índice: {resultado}')

Complejidad Temporal

La búsqueda binaria tiene una complejidad temporal de O(log n), lo que la hace mucho más eficiente que la búsqueda lineal (O(n)) para listas grandes.

  • Búsqueda lineal: Recorre cada elemento uno por uno.
  • Búsqueda binaria: Corta la lista a la mitad en cada iteración.

Por ejemplo, para una lista de 1,000 elementos, la búsqueda binaria realiza un máximo de alrededor de 10 comparaciones (log2(1000)≈10log_2(1000) \approx 10).

Aplicaciones

  • Búsqueda en bases de datos ordenadas: Ideal para recuperar registros rápidamente.
  • Algoritmos de compresión: Optimiza la búsqueda de patrones repetidos.
  • Sistemas de archivos: Facilita la localización eficiente de datos en estructuras ordenadas.

 

Comparte este Post:

Posts Relacionados

Cuando proteger el futuro cuesta energía

La seguridad cuántica tiene un precio. Y no hablamos de dinero, sino de vatios, bytes y grados Celsius. Mientras los titulares celebran la llegada de algoritmos «inmunes» a la computación cuántica, casi nadie se pregunta cuánto le costará físicamente al planeta y a nuestras baterías defender el internet del mañana.

Ver Blog »

How much does AI really cost the planet?

A joke has been making the rounds in tech circles: “AI lives in the cloud.” It’s funny because it sounds weightless—like a software miracle floating above the messy realities of the world. But the “cloud” is not a metaphor. It is steel, concrete, copper, millions of chips, and data centers

Ver Blog »

Side-channel attacks en sistemas de monitorización climática

Vulnerabilidades de side-channel attacks en la Infraestructura Global de Monitorización Climática: Análisis de seguridad física y ciberresiliencia. Hoy en día, la monitorización del cambio climático es una prioridad a nivel científico y geopolítico que depende de la precisión e integridad de los datos recolectados en tiempo real. La transición de

Ver Blog »

¿La IA salvadora? O maquillando el problema

¿Por qué esperamos a escuchar que algo malo está a punto de suceder para preocuparnos y cuestionarnos si debemos actuar? Constantemente escuchamos hablar del cambio climático, de deshielos, de inundaciones. Y si todo esto está sucediendo, ¿realmente nos interesa? ¿O creemos que, como no nos afecta directamente, podemos posponer la

Ver Blog »

El hogar sostenible del futuro

La inteligencia artificial está transformando nuestra manera de vivir El cambio climático y el crecimiento acelerado de las ciudades han convertido al hogar en uno de los principales focos de consumo energético y generación de emisiones contaminantes. Actualmente, una parte significativa de la energía mundial se consume en viviendas, lo

Ver Blog »

Character Set

En el desarrollo de software trabajamos constantemente con texto: nombres de usuarios, mensajes, datos importados, logs, comunicación entre servicios… y detrás de todo ese texto existe un concepto fundamental que a menudo pasa desapercibido: el character set o conjunto de caracteres. Si los character codes representan “cómo se codifica un

Ver Blog »

Déjanos tus datos, nosotros te llamamos

Leave us your details and we will send you the program link.

Déjanos tus datos y 
te enviaremos el link del white paper

Déjanos tus datos y 
te enviaremos el link de la revista

Déjanos tus datos y 
te enviaremos el link del programa