Sie sind auf Seite 1von 2

Mtodo de bsqueda de Vectores

Los mtodos de bsqueda nos permiten recuperar informacin de un vector o un archivo, que contenga una lista de datos. Por ejemplo se puede obtener el nombre y el nmero telefnico de nuestra agenda de contactos o la nota obtenida por un alumno en la lista de un curso. Cuando se realizan bsquedas sobre vectores, se desea es encontrar la posicin que ocupa el elemento buscado dentro de la lista de elementos que contiene el vector. Para la bsqueda de informacin en archivos es necesario realizar la bsqueda a partir de un campo clave dentro del archivo. Existen diferentes mtodos de bsqueda y se puede determinar con cual mtodo trabajar dependiendo de la cantidad de elementos que existan en el vector o la organizacin de dichos elementos. A continuacin para determinar si un elemento pertenece a un conjunto de elementos e indicar su posicin dentro de un vector, utilizaremos los mtodos de bsqueda secuencial (lineal) y bsqueda binaria.

Bsqueda secuencial o lineal


El mtodo ms sencillo de buscar un elemento en un vector, en este mtodo se recorre el vector desde el primer elemento hasta el ltimo, comparando cada elemento del vector con el valor buscado, hasta que se encuentre el elemento o se llegue al final del vector. Este mtodo es recomendado para realizar bsquedas con pocos datos. La bsqueda secuencial no requiere ningn registro por parte del vector por consiguiente no requiere que el vector est ordenado.
Algoritmo bsqueda_secuencial Tipo array [1..N] de entero: vector var: vector: X Entero: i,t. inicio desde i 1 hasta N hacer leer(X[i]) fin_desde escribir(Introduzca el elemento a buscar: ) leer(t) desde i 1 hasta N hacer si (X[i] = t) entonces escribir (Elemento encontrado en la posicin ,i) fin_si fin_desde fin.

Bsqueda binaria
Este mtodo es una tcnica eficaz para realizar bsquedas en vectores o archivos que contengan un mayor nmero de datos. Este mtodo divide el vector en mitades de manera sucesiva hasta que encuentra el dato buscado, es decir, el mtodo divide el vector y se examina el elemento central del vector. Si es el elemento que se busca, entonces la bsqueda finaliza, pero sino se determina si el dato buscado est en la primera o la segunda mitad del vector y se repite el proceso en la nueva mitad, buscando su elemento central. Para realizar la bsqueda binaria el vector debe estar ordenado y se comienza comparando con el elemento central.

algoritmo bsqueda binaria tipo array [1..N] de entero: vector var: vector: X entero: i,j,t lgica: encontrado inicio leer(X) ordenar(X) (ascendente) leer(k) primero 1 ltimo N central ENT ((primero+ltimo)/2) mientras (primero <= ltimo) y (X[central] <> K) hacer si (K < X[central]) entonces ltimo central - 1 si_no primero central + 1 fin_si central ENT ((primero+ltimo)/2) fin_mientras si K = X[central] entonces escribir(Elemento encontrado en la posicin ,central) si_no escribir(Elemento no encontrado) fin_si fin.