24. Búsqueda binaria

Crea una función que implemente el algoritmo de búsqueda binaria para encontrar un elemento en una lista ordenada.

La función debe aceptar una lista ordenada de elementos y el elemento a buscar. Debe devolver el índice del elemento si se encuentra, o -1 si no está presente en la lista.

def busqueda_binaria(lista_ordenada: list, elemento_a_buscar) -> int:
    # Tu código aquí
    pass

busqueda_binaria([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 5)
# 4 (índice donde se encuentra el 5)

busqueda_binaria([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 1)
# 0

busqueda_binaria([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 10)
# 9

busqueda_binaria([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 11)
# -1

busqueda_binaria(["a", "b", "c", "d"], "c")
# 2

Ratoncito

Implementa la búsqueda binaria de forma recursiva, tal como exigen las reglas del libro (prohibido bucles).

Dragón

Añade un parámetro opcional para que la función devuelva no solo la primera ocurrencia del elemento, sino el índice de la primera o la última ocurrencia en caso de que existan elementos duplicados.

This work is under a Attribution-NonCommercial-NoDerivatives 4.0 International license.

Will you buy me a coffee?

Visitors in real time

You are alone: 🐱