Estrellamos el menu (on = habilitado y off=inhabilitado[proximamente]) .. Sigue Mandando tus susper mensajitos....en guate-->. claro tigo telefonica

Buscar

¡Haga de esta pagina su inicial!

Sitios Encontrados

viernes, 24 de abril de 2009

Busqueda binaria en un arreglo

Esta busqueda elimina, tras cada comparacion, la mitad de los elementos del arreglo en los que se efectua la busqueda. Primero localiza el elemento central del arreglo y luego lo compara con la clave de busqueda. Si son iguales, se ha encontrado dicha clave y se devuelve el subindice de ese elemento. De otro modo, el problema se reduce buscar en una mitad del arreglo. Si la clave de busqueda es menor que el elmento central del arreglo, se busca en la primera mitad; de otro modo, se busca en la segunda mitad. Si la clave de busqueda no esta en el elemento central del subarreglo especificado (parte del arreglo original), se repite el algoritmo en una cuarta parte del arreglo original. La busqueda continua hasta que la clave de busqueda sea igual al elemento central de un subarreglo o hasta que que el subarreglo consista de un elemento, el cual no es igual ala clave de busqueda(esdecir, no se encuentra la clave de busqueda).
En el peor caso, la busqueda en un erreglo de 1024 elementos solo se llevaras 10 comparaciones mediante la busqueda binaria. La division repetida de 124 entre 2 (dado que tras cada comparacion se puede descartar lamitad del arreglo) nos da los valores 512, 256, 128, 64, 32, 16, 8, 4, 2 y 1. La division entre 2 es quivalente a una comparacion en el algoritmo de busqueda binaria.
El siguiente ejemplo presenta la version iterativa de la funcion (bynarySearch). La funcion recibe cuatro argumentos: un arreglo "b", un entero "searchKey", el subindice "low" del arreglo y el subindice "high" del arreglo. Si la clave de busqueda no es igual al elemento de la mitad de un subarreglo, se ajusta el subindice "low" o "high" para poder hacer la busqueda en un subarreglo mas pequeño. Si la clave de busqueda es menor que el elemento central, el subindice "high" se establece a "middle-1" y se continua la busqueda en los elementos de "low a middle - 1.Si la clave de busqueda es mayor que el elemento centra, el subindice "low" se establece a "middle+ 1" y se continua la busqueda en los elementos de "middle + 1" a "high". El programa emplea un arreglo de 15 elementos. La primera potencia de 2 mayor que la cantidad de elementos de este arreglo es 16(2 ºexponente 4), por loque se necesita un maximo de cuatro comparaciones para encontrar la clave de busqueda. La funcion "printHeader" envia a la salida los subindices del arreglo y la funcion "printRow" envia a la salida cada subarreglo generado durante el proceso de busqueda binaria. El elemento central de cada subarreglo se marca con un asterisco(*), para indicar el elemento con el que se compara la clave de busqueda.
para C++ seria asi:foto + grande
para C# seria asi:foto + grande

5 comentarios:

Henry Miramira Malpartida dijo...

Hola como estas , te pido un gran favor como aprendiz de desarrollo en c# , podrias enviar este codigo que esta muy interesante para poder estudiarlo mejor mi correo es anarchy9902@gmail.com , muchas gracias

Henry Miramira Malpartida dijo...

Hola como estas , te pido un gran favor como aprendiz de desarrollo en c# , podrias enviar este codigo que esta muy interesante para poder estudiarlo mejor mi correo es anarchy9902@gmail.com , muchas gracias

Anónimo dijo...

hola estoy realizando untrabajo sobre busqueda binaria me podrias pproporcinarl el codigo
me serviria de gran ayuada
mi correo es espacio_ometepec@hotmail.com
te lo agradecere

Anónimo dijo...

aca te dejo...
el link donde tienes a tu disposicion el codigo
para
C++
http://picasaweb.google.com/andymartinez00/CCConsolaCForWindows#5328395240277438562
para C#
http://picasaweb.google.com/andymartinez00/CCConsolaCForWindows#5328395240277438562

haz clik donde dice foto + grande...

Anónimo dijo...

gracias e sirvio d egrana ayudaaaa
ehhh