Você está na página 1de 2

Algoritmos de Bsqueda

Los procesos de bsqueda involucran recorrer un arreglo completo con el


fin de encontrar algo. Lo ms comn es buscar el menor o mayor elemento
(cuando se puede establecer un orden), o buscar el ndice de un elemento
determinado.
Para buscar el menor o mayor elemento de un arreglo, podemos usar la
estrategia, de suponer que el primero o el ltimo es el menor (mayor), para
luego ir comparando con cada uno de los elementos, e ir actualizando el
menor (mayor). A esto se le llama Bsqueda Lineal.
Bsqueda Secuencial:
Se utiliza cuando el contenido del Vector no se encuentra o no puede ser
ordenado. Consiste en buscar el elemento comparndolo secuencialmente
(de ah su nombre) con cada elemento del arreglo o conjunto de datos hasta
que se encuentre, o hasta que se llegue al final del arreglo. La existencia se
puede asegurar desde el momento que el elemento es localizado, pero no
podemos asegurar la no existencia hasta no haber analizado todos los
elementos del arreglo. A continuacin se muestra el pseudocdigo del
algoritmo:
* Datos de Entrada:
vec: vector en el que se desea buscar el elemento
tam: tamao del vector
dato: elemento que se quiere buscar.
* Variables
pos: posicin actual en el array
pos = 0
Mientras pos < tam:
Si vec[pos]== dato devolver verdadero y/o pos, de lo contrario:
pos = pos + 1
Fin (Mientras)
Devolver falso
Bsqueda binaria (dicotmica)
Se utiliza cuando el vector en el que queremos determinar la existencia o no
de un elemento est ordenado, o puede estarlo, este algoritmo reduce el
tiempo
de
bsqueda
considerablemente,
ya
que
disminuye
exponencialmente con el nmero de iteraciones.
Para implementar este algoritmo se compara el elemento a buscar con un
elemento cualquiera del arreglo o conjunto de datos (habitualmente el
elemento en la posicin central del arreglo), si el valor de ste es mayor que
el del elemento buscado se repite el procedimiento en la parte del arreglo
que va desde el inicio de ste hasta el elemento tomado, en caso contrario
se toma la parte del arreglo que va desde el elemento tomado hasta el final.
De esta manera obtenemos intervalos cada vez ms pequeos, hasta que
se obtenga un intervalo indivisible, con el elemento buscado como elemento
central. Si el elemento no se encuentra dentro de este ltimo entonces se
deduce que el elemento buscado no se encuentra en el arreglo.

A continuacin se presenta el pseudocdigo del algoritmo, tomando como


elemento inicial el elemento central del arreglo.
* Datos de Entrada:
vec: vector en el que se desea buscar el elemento
tam: tamao del vector
dato: elemento que se quiere buscar.
* Variables
centro: elemento central del intervalo
inf: lmite inferior del intervalo
sup: lmite superior del intervalo
inf = 0
sup = tam1
Mientras inf <= sup:
centro = ((sup + inf) / 2) /* divisin entera: se trunca la parte decimal */
Si vec[centro] == dato devolver verdadero y/o pos, de lo contrario:
Si dato < vec[centro] entonces:
sup=centro1
En caso contrario:
inf=centro+1
Fin (Mientras)
Devolver Falso

Você também pode gostar