Question: Explica el algoritmo de búsqueda binaria brevemente.
Answer: El ejemplo clásico de este algoritmo es para buscar un valor en una lista ordenada. En lugar de revisar cada elemento de la lista, podemos elegir el elemento del medio y compararlo con el valor que deseamos buscar, si resulta mayor que dicho valor entonces descartamos la mitad derecha de la lista, y si resulta menor entonces descartamos la mitad izquierda de la lista, y continuamos repitiendo este proceso hasta que la lista en la que buscamos tenga solo un elemento.

Dado que este algoritmo reduce a la mitad la cantidad de candidatos en cada iteración, su complejidad temporal es O(log n) donde n es la longitud inicial de la lista. Un ejemplo de una implementación sería este:

```Python
def busqueda_binaria(lista: list, valor: int):
    left = 0
    right = len(arr)
    while left < right:
        mid = (left + right) // 2
        if lista[mid] < valor:
            left = mid + 1
        else:
            right = mid
    if lista[left] == valor:
        return True
    return False
```