Saltar al contenido

Búsqueda binaria

Python · Unidad 23: Buscar y ordenar

Si la lista ya viene ordenada, mirar uno por uno es desperdiciar el orden. Mira el de en medio: ahí decides.

Si tu valor es más grande que ese, todo lo que está a la izquierda sobra. De un vistazo tiras media lista.

nums = [2, 5, 8, 11, 14]
m = len(nums) // 2
print(nums[m])
print(nums[m + 1:])

Imprime

8
[11, 14]

El resto de la explicación está en la lección, que es del plan completo.

Ejercicios de esta lección

Se hacen en la app, que los corrige al momento y explica por qué.

  1. 1. Opción múltiple

    En [1, 4, 7, 9, 12] buscas el 12. Miras el de en medio, el 7. ¿Qué parte puedes descartar?

  2. 2. Predice la salida

    Esta versión imprime cada número que mira. ¿Qué imprime?

  3. 3. Completa el código

    Completa el punto medio entre los dos extremos.

  4. 4. Encuentra el bug

    binaria debería regresar la posición del 8, que es 3, pero imprime -1. ¿Qué línea tiene el error?

  5. 5. Predice la salida

    El contador sube en cada vuelta del while. ¿Qué imprime?

  6. 6. Opción múltiple

    ¿Qué pasa si le pasas a la búsqueda binaria una lista que no está ordenada?

  7. 7. Predice la salida

    ¿Qué imprime este código?

  8. 8. Completa el código

    Completa para que diga si el valor está en la lista ordenada.

  9. 9. Encuentra el caso que falla

    esta(nums, v) debería regresar True si v está en la lista ordenada y False si no, también cuando v es más grande que todos. ¿Con qué llamada falla?

Hacer esta lección

Se abre en el navegador. Esta lección es del plan completo; la primera unidad de cada curso es gratis.

Ver todas las lecciones →