Explica el algoritmo de búsqueda binaria brevemente.
user
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
```

assistant