Búsqueda binaria
Python · Unidad 23: Buscar y ordenar
- Plan completo
- Python
- 9 ejercicios
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. 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. Predice la salida
Esta versión imprime cada número que mira. ¿Qué imprime?
3. Completa el código
Completa el punto medio entre los dos extremos.
4. Encuentra el bug
binariadebería regresar la posición del 8, que es 3, pero imprime -1. ¿Qué línea tiene el error?5. Predice la salida
El contador sube en cada vuelta del
while. ¿Qué imprime?6. Opción múltiple
¿Qué pasa si le pasas a la búsqueda binaria una lista que no está ordenada?
7. Predice la salida
¿Qué imprime este código?
8. Completa el código
Completa para que diga si el valor está en la lista ordenada.
9. Encuentra el caso que falla
esta(nums, v)debería regresarTruesivestá en la lista ordenada yFalsesi no, también cuandoves más grande que todos. ¿Con qué llamada falla?
Se abre en el navegador. Esta lección es del plan completo; la primera unidad de cada curso es gratis.