Búsqueda binaria
- O(log n) · Fácil
- Gratis
- Python
- JavaScript
- listas
- búsqueda
- ciclos
Enunciado
Así se busca una palabra en un diccionario de papel: lo abres a la mitad y ya sabes de qué lado seguir. Eso se puede hacer con una lista que ya viene ordenada.
Escribe una función que reciba una lista de números ordenada de menor a mayor y un valor, y regrese la posición donde está ese valor. Las posiciones empiezan en 0, así que en 1, 3 y 4 el 4 está en la posición 2. Si el valor no está en la lista, regresas -1. Con la lista vacía también regresas -1.
La lista siempre llega ordenada: no tienes que revisarlo.
Se puede recorrer uno por uno, pero mira lo que te regala el orden: si ves el número de en medio, sabes de inmediato en qué mitad puede estar el valor, y la otra mitad ya no la vuelves a mirar.
Ejemplos
Un solo número
[6], 6 → 0
En medio
[1, 3, 4, 6, 8, 9, 11], 6 → 3
El primero
[1, 3, 4, 6, 8, 9, 11], 1 → 0
El último
[1, 3, 4, 6, 8, 9, 11], 11 → 6
No está
[1, 3, 4, 6, 8, 9, 11], 7 → -1
Además de estas, el reto tiene pruebas ocultas que se revelan al enviar tu solución.
Empiezas con esto
Python
def busqueda_binaria(nums, valor):
passJavaScript
function busquedaBinaria(nums, valor) {
}Se abre en el navegador, con el editor y las pruebas. Es gratis y no hace falta cuenta para empezar.