Está en la página 1de 1

1.

BSQUEDA BINARIA
El algoritmo de bsqueda binaria es un ejemplo claro de la tcnica
Divide y Vencers. El problema de partida es: decidir si existe un
elemento dado x en un vector de enteros ordenado. El hecho de que
est ordenado va a permitir utilizar esta tcnica, pues podemos
plantear un algoritmo con la siguiente estrategia:
Comprese el elemento dado x con el que ocupa la posicin central
del vector. En caso de que coincida con l, hemos solucionado el
problema. Pero si son distintos, pueden darse dos situaciones: que x
sea mayor que el elemento en posicin central, o que sea menor. En
cualquiera de los dos casos podemos descartar una de las dos
mitades del vector, puesto que si x es mayor que el elemento en
posicin central, tambin ser mayor que todos los elementos en
posiciones anteriores, y al revs. Ahora se procede de forma recursiva
sobre la mitad que no hemos descartado. En este ejemplo la divisin
del problema es fcil, puesto que en cada paso se divide el vector en
dos mitades tomando como referencia su posicin central. El
problema queda reducido a uno de menor tamao y por ello
hablamos de simplificacin. Por supuesto, aqu no es necesario un
proceso de combinacin de resultados. Su caso base se produce
cuando el vector tiene slo un elemento. En esta situacin la solucin
del problema se basa en comparar dicho elemento con x. Como el
tamao de la entrada (en este caso el nmero de elementos del
vector a tratar) se va dividiendo en cada paso por dos, tenemos
asegurada la convergencia al caso base.
Ejercicios. Solucione los siguientes problemas usando la
tcnica DV.
1.Realice un programa que adivine un nmero un nmero entre 1 y
100.(Use busqueda binaria) para lo cual cuenta con 7 oportunidades
de adivinar como mximo. Indique en cual de las oportunidades lo
adivina.
2. Realice un programa que adivine un nmero un nmero entre 1 y
un limite que se debe solicitar por teclado (o solicitar al usuario). Se
debe calcular el numero de oportunidades que se tiene en este caso.
Indique en cual de las oportunidades lo adivina
3.Realice un programa que inicialice un vector de tamao n y lo
ordene(use cualquier mtodo de ordenamiento) y adicionalmente lea
un nmero para buscarlo en el vector. Determine si el nmero se
encuentra o no en el vector. Si se encuentra imprima la posicin (Use
busqueda binaria)