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