2. METODOS DE BUSQUEDA
•
¿QUE SON?
• La búsqueda de información está relacionada con
las tablas para consultas. Estas tablas contienen
una cantidad de información que se almacenan en
forma de listas de parejas de datos. Por ejemplo un
catálogo con una lista de libros de
matemáticas, en donde es necesario buscar con
frecuencia elementos en una lista. Existen
diferentes tipos de búsqueda, pero en esta
presentación describiremos sólo la de tipo
Secuencial y Binaria.
3. METODO DE BUSQUEDA
SECUENCIAL
• Este método se usa para buscar un elemento de un
vector, es explorar secuencialmente el vector, es
decir; recorrer el vector desde el primer elemento
hasta el último. Si se encuentra el elemento
buscado se debe visualizar un mensaje similar a
“Fin de Búsqueda” o “Elemento encontrado” y otro
que diga “posición=” en caso contrario, visualizar
un mensaje similar a “Elemento no existe en la
Lista”.
4. • Este tipo de búsqueda compara cada elemento del
vector con el valor a encontrar hasta que este se
consiga o se termine de leer el vector completo.
5. import jeliot.io.*;
import java.util.*;
//created by igoodbad
public class BusquedaSecuencial {
public static String buscarNumero(int bNumber, int vector[]){
String mNumber=" ";
for(int i=0;i<vector.length;i++){
if(vector[i]==bNumber){
mNumber+="El mumero "+bNumber+" se encuentra en la posicion "+i+
" del vector.n";
}
}
if(mNumber.equals(" "))return "El numero "+bNumber+"nNo esta en el vector";
else
return mNumber;
}
public static void main() {
int[] vector = {1,2,3,4,5,6,7,8,9,10};
int NumBuscar=0;
Scanner sc = new Scanner(System.in);
System.out.print("Introduce un numero a buscar: ");
NumBuscar= sc.nextInt();
System.out.print(buscarNumero(NumBuscar, vector));
}
}
6. METODO DE BUSQUEDA
BINARIA
• Es un método que se basa en la división sucesiva
del espacio ocupado por el vector en sucesivas
mitades, hasta encontrar el elemento buscado.
• Esta búsqueda utiliza un método de “divide y
vencerás” para localizar el valor deseado. Con
este método se examina primero el elemento
central de la lista; si este es el elemento buscado
entonces la búsqueda ha terminado
7. • . En caso contrario se determina si el elemento
buscado está en la primera o segunda mitad de la
lista y a continuación se repite el proceso
anterior, utilizando el elemento central de esta
sublista. Este tipo de búsqueda se utiliza en
vectores ordenados.
8. import java.util.*;
public class BusquedaBinaria {
public static void main() {
// Llenar arreglo
int [] edades = new int [4];
for (int i = 0; i < edades.length ; i++){
edades[i] = i*i ;}
// Mostrar arreglo.
for (int i = 0; i < edades.length ; i++){
System.out.println ( "edades["+i+"]: "+ edades[i]);}
int resultado = BusquedaAlgoritmo.buscar(edades, 9);
if (resultado != -1) {
System.out.println ( "Encontrado en: "+ resultado);
} else {
System.out.println ( "El dato no se encuentra en el arreglo, o el
arreglo no está ordenado." );
}
}
}
9. class BusquedaAlgoritmo {
public static int buscar( int [] arreglo, int dato) {
int inicio = 0;
int fin = arreglo.length - 1;
int pos;
while (inicio <= fin) {
pos = (inicio+fin) / 2;
if ( arreglo[pos] == dato )
return pos;
else if ( arreglo[pos] < dato ) {
inicio = pos+1;
} else {
fin = pos-1;
}
}
return -1;
}
}