Laboratorio de Estructura de Datos
ISWR453CP GR1
Nombre: Deyvid Joel Paucar Nasimba
Tema: Métodos de Búsqueda Interno y Externo.
Objetivos:
Estudiar los diferentes métodos de búsqueda que existen.
Implementar 2 métodos en el lenguaje de programación java
(lineal, binaria).
Implementar el método de búsqueda Secuencial por bloques.
Entender cómo funciona cada método de búsqueda.
Compara los métodos
Marco Teórico
Métodos de búsqueda. La búsqueda es la ejecución primordial en el procesamiento de información, ya
que permite obtener datos anteriormente almacenados. El resultado de una búsqueda puede ser un éxito, si
se localiza la información o un fracaso, si no la encuentra. Esta ejecución se puede aplicar a elementos
previamente organizados o sobre elementos desordenados, en un primer caso la búsqueda es más fácil, en
cambio en el segundo se dificulta un poco más el proceso, sobre todo cuando de se trata de encontrar una
cantidad importante de elementos similares. Objetivo de los métodos de búsqueda Su principal función es
conocer los métodos más importantes de búsqueda y de esta manera aplicar el más conveniente al
conjunto de datos que se ubique, ya sea en memoria principal o en la memoria secundaria, así mismo
manejará las funciones de dispersión. Tipos de métodos de búsqueda En la actualidad contamos con 2
tipos de búsquedas, las cuales son operaciones que tienen como función localizar un contenido dentro de
las bases de datos de las aplicaciones que estemos ocupando. *Búsqueda interna. *Búsqueda externa.
*Búsqueda interna. La búsqueda interna es la aplicación en la que todos los elementos de la estructura
estática (arreglo) o dinámica (lista ligada o árbol) se encuentran almacenados en la memoria principal de
la computadora. Los métodos de búsqueda interna más importantes son: * Secuencial o lineal: Consiste
chequear la estructura de datos elemento por elemento hasta ubicar el dato que estamos buscando, o hasta
llegar al final de la estructura de datos.
Desarrollo de la práctica
Ejercicios
1. Implementar un programa que permita buscar una clave en un archivo utilizando búsqueda lineal.
Implementar los siguientes métodos:
a) imprimirRegistros,
b) busquedaLineal,
c) imprimirRegistroEncontrado
System.out.println("Busqueda Lineal");
File f = new File("e:/numeros.txt");
System.out.println("Introduce el numero que desea buscar:
");
clave= buscar.nextInt();
try (Scanner en = new Scanner(f)) {
while (en.hasNextInt()) {
numero = en.nextInt();
if (numero==clave) {
System.out.println("Si existe el numero "+
clave +" y esta en la posiscion " +numeroDeLineas);
contiene = true;
break;
}
numeroDeLineas++;
}
if(contiene==false){
System.out.println(" ERROR: Elemento no
encontrado");
}
} catch (FileNotFoundException e) {
System.out.println(e.toString());
}
muestraContenido("e:numeros.txt");
2. Implementar un programa que permita buscar un arreglo a través del método de búsqueda
binaria (Usar vectores). Implementar los siguientes métodos:
a) ImprimirLista
b) OrdenarLista
c) BusquedaBinaria
System.out.println("Busqueda Binaria");
System.out.println("Arreglo NO ordenado: ");
imprimirArreglo(arreglo2);
System.out.println("Arreglo ordenado: ");
ordenamientoBurbuja(arreglo2);
imprimirArreglo(arreglo2);
System.out.println("Ingrese el numero de quesea buscar");
clave= buscar.nextInt();
int resultado =
busquedaBinarialternativa(arreglo2,clave);
if (resultado == -1) {
System.out.println ( "ERROR: Elemento no
encontrado");
}
3. Implementar un programa que permita buscar un arreglo a través del método de búsqueda secuencial
mediante bloques.Implementar los siguientes métodos:
a) ImprimirLista
b) OrdenarLista
c) BusquedaSecuencialBloque
System.out.println("Busqueda Secuencial por Bloques");
System.out.println("Arreglo NO ordenado: ");
imprimirArreglo(arreglo2);
System.out.println("Arreglo ordenado: ");
ordenamientoBurbuja(arreglo2);
imprimirArreglo(arreglo2);
System.out.println("Ingrese el numero de quesea buscar");
clave= buscar.nextInt();
busquedaSecuencialBloques(arreglo2,clave);
CONCLUSIONES
Contar con estructuras de datos es de suma importancia tanto para el buen manejo de la información,
como para la buena ejecución de los programas del computador. Las estructuras de datos principales son
los archivos y dentro de ellos es posible almacenar numerosas cantidades de información que
normalmente no están bien organizada o en su caso es muy extensa, lo que dificulta el acceso a un dato en
particular. Este problema se incrementa de manera exponencial cuando pasamos del manejo de archivos a
bases de datos, que pueden contener millones de veces la cantidad de información contenida en un
archivo, con miles o millones de registros que en su momento serán utilizados.