You are on page 1of 9

Binary Search

Ahora en Español…
¿Que es?

La búsqueda binaria (ˈbaɪnəri) es un algoritmo eficiente (ɪˈfɪʃənt) (ˈælgə


ˌrɪðəm) para encontrar un elemento de una lista ordenada de
elementos. Funciona dividiendo repetidamente (rɪˈpitɪdli) (dɪˈvaɪdɪŋ) por
la mitad la parte de la lista que podría contener el elemento, hasta que
haya reducido las ubicaciones posibles a solo una. Usamos la
búsqueda binaria en el juego de adivinanzas (ˈgɛsɪŋ) en el tutorial
introductorio.
Ejemplo
Una de las formas más comunes de usar la búsqueda binaria es encontrar un elemento en
una matriz. Por ejemplo, el catálogo de estrellas Tycho-2 (ˈkætəlɔg) contiene información
sobre las 2 539 913 estrellas más brillantes de nuestra galaxia. Suponga que desea buscar
en el catálogo una estrella en particular, según el nombre de la estrella. Si el programa
examinara (ɪgˈzæmənd) cada estrella en el catálogo de estrellas en orden comenzando con
la primera, un algoritmo llamado búsqueda lineal, la computadora podría tener que
examinar las 2,539,913 (dos millones quinientas treinta y nueve mil novecientas trece)
estrellas para encontrar la estrella que buscabas, en el peor de los casos. Si el catálogo
estuviera ordenado alfabéticamente (ˌælfəˈbɛtɪkli) por nombres de estrellas, la búsqueda
binaria no tendría que examinar más de 22 estrellas, incluso en el peor de los casos.
Describiendo la búsqueda binaria
Cuando se describe un algoritmo a un ser humano, una descripción incompleta suele ser
suficiente. Algunos detalles pueden quedar fuera de la receta de un pastel; la receta asume
que sabes cómo abrir el refrigerador para sacar los huevos y que sabes cómo romper los
huevos. Las personas pueden intuitivamente (ɪnˈtuɪtɪvli) saber cómo completar los detalles
que faltan, pero los programas de computadora no. Es por eso que necesitamos describir
completamente los algoritmos de computadora.
Para implementar un algoritmo en un lenguaje de programación, deberá comprender un
algoritmo hasta los detalles. ¿Cuáles son las entradas al problema? ¿Las salidas? ¿Qué
variables deben crearse y qué valores iniciales deben tener? ¿Qué pasos intermedios
deben tomarse para calcular otros valores y, en última instancia, calcular la salida? ¿Estos
pasos repiten instrucciones que se pueden escribir en forma simplificada usando un bucle?
Describiendo la búsqueda binaria

Veamos cómo describir cuidadosamente la búsqueda binaria. La idea


principal de la búsqueda binaria es realizar un seguimiento del rango
actual de conjeturas razonables (ˈrizənəbəl) (ˈgɛsəz). Digamos que
estoy pensando en un número entre uno y 100, como en el juego de
adivinanzas. Si ya adivinaste 25 y te dije que mi número era más alto,
y ya adivinaste 81 y te dije que mi número era más bajo, entonces los
números en el rango de 26 a 80 son las únicas conjeturas
razonables. el
Describiendo la búsqueda binaria
Aquí, la sección roja de la recta numérica contiene

En cada turno, eliges una conjetura que divide el conjunto de conjeturas razonables en
dos rangos de aproximadamente (ˈrʌfli) del mismo tamaño. Si su conjetura no es correcta,
le diré si es demasiado alta o demasiado baja, y puede eliminar aproximadamente la mitad
de las conjeturas razonables (ˈrizənəbəl). Por ejemplo, si el rango actual de conjeturas
razonables es de 26 a 80, adivinarás el punto medio, (26 + 80) / 2, o 53. Si luego te digo
que 53 es demasiado alto, puedes eliminar todos los números de 53 a 80, dejando 26 a 52
como el nuevo rango de conjeturas razonables, reduciendo a la mitad el tamaño del rango.
Describiendo la búsqueda binaria
Para el juego de adivinanzas, podemos realizar un seguimiento del conjunto
de conjeturas razonables utilizando algunas variables. Sea la variable min la
suposición razonable mínima actual para esta ronda, y sea la variable max la
suposición razonable máxima actual. La entrada al problema es el número n,
el número más alto posible en el que está pensando su oponente.
Suponemos que el número más bajo posible es uno, pero sería fácil modificar
el algoritmo para tomar el número más bajo posible como segunda entrada.
Aquí hay una descripción paso a paso del uso de la búsqueda binaria para
jugar el juego de adivinanzas:
Descripción paso a paso
FIN

You might also like