Junior
¿Cómo funciona el algoritmo de búsqueda binaria?
sobes.tech AI
Respuesta de la IA
La búsqueda binaria funciona analizando un array ordenado, dividiendo sucesivamente el intervalo de búsqueda a la mitad.
- Inicialización: Se define la frontera izquierda y derecha del intervalo de búsqueda (usualmente el inicio y el final del array).
- Comparación: Se calcula el índice del medio del intervalo. El valor en ese índice se compara con el elemento buscado.
- Reducción del intervalo:
- Si el valor en el medio coincide con el buscado, el elemento se ha encontrado.
- Si el valor en el medio es mayor que el buscado, la búsqueda continúa en la mitad izquierda del intervalo. La frontera derecha se desplaza a medio - 1.
- Si el valor en el medio es menor que el buscado, la búsqueda continúa en la mitad derecha del intervalo. La frontera izquierda se desplaza a medio + 1.
- Repetición: Los pasos 2 y 3 se repiten hasta que se encuentre el elemento o el intervalo de búsqueda quede vacío.
La complejidad del algoritmo es O(log n), lo cual es mucho más eficiente que la búsqueda lineal para arrays grandes.
Ejemplo de implementación en Python:
def binary_search(arr, target):
"""
Implementación de búsqueda binaria.
Toma un array ordenado y el valor buscado.
Retorna el índice del elemento o -1 si no se encuentra.
"""
left, right = 0, len(arr) - 1
while left <= right:
mid = (left + right) // 2 # Calcula el índice medio
mid_val = arr[mid] # Obtiene el valor en medio
if mid_val == target:
return mid # Elemento encontrado
elif mid_val < target:
left = mid + 1 # El valor buscado es mayor, busca en la derecha
else: # mid_val > target
right = mid - 1 # El valor buscado es menor, busca en la izquierda
return -1 # Elemento no encontrado