Está en la página 1de 17

Algoritmos y Estructuras de Datos

Métodos de Búsqueda
Ing. Aníbal Sardón Paniagua
C16290@utp.edu.pe
anibal.sardon@hotmail.com
Logros de Aprendizaje

Al finalizar la sesión el estudiante:


• Conoce los algoritmos de búsqueda básicos.
• Descubre el uso de los algoritmos de búsqueda sobre
vectores y matrices
Temas a tratar
• Esquemas básicos de búsqueda
• Método Secuencial
• Método Binaria
Datos/Observaciones
Algoritmos de Búsqueda
▪ Un algoritmo de búsqueda es aquel que está diseñado para
localizar un elemento con ciertas propiedades dentro de una
estructura de datos.
▪ Por ejemplo, ubicar el registro correspondiente a cierta persona en
una base de datos, o el mejor movimiento en una partida de
ajedrez.
▪ Con mucha frecuencia los programadores trabajan con
grandes cantidades de datos almacenados en arrays y
registros, y por ello será necesario determinar si un array
contiene un valor que coincida con un cierto valor clave.
▪ Examinaremos dos técnicas de búsqueda:
▪ Búsqueda lineal o secuencial (técnica sencilla)
▪ Búsqueda binaria o dicotómica. (técnica eficiente)
Búsqueda lineal
• La búsqueda secuencial busca un elemento de una lista
utilizando un valor destino llamado clave.
• Los elementos de una lista o vector se exploran (se
examinan) en secuencia, uno después de otro.
• El algoritmo de búsqueda secuencial compara cada elemento
del array con la clave de búsqueda
• La búsqueda secuencial es necesaria, por ejemplo, si se desea
encontrar a la persona cuyo número de teléfono es 958-220000 en
un directorio o listado telefónico de su ciudad.
• Los directorios de teléfonos están organizados alfabéticamente por
el nombre del abonado en lugar de por números de teléfono, de
modo que deben explorarse todos los números, uno después de
otro, esperando encontrar el número 958-220000.
Búsqueda lineal
1 funcion BusquedaLineal (V: vector de natural ;
2 elem,n : natural ) devuelve entero
3 variable i : natural ;
4 i←1;
5 mientras ( ( i  n ) y (V[i]  elem) ) hacer
6 i ← i +1;
7 fmientras
8 si ( i  n ) entonces
9 devuelve i ;
10 sino
11 devuelve -1;
12 fsi
13 ffuncion
Búsqueda binaria
• Permite buscar de una manera más eficiente un dato dentro de
un arreglo.
• Si el vector está ordenado (de manera ascendente o
descendente), es posible aplicar búsqueda binaria.
• El Algoritmo compara el dato buscado con el elemento central.
• Según sea menor o mayor se prosigue la búsqueda con el
subconjunto anterior o posterior:

1. Dividir el vector en dos partes iguales.


2. Si el elemento en el centro del vector es mayor que el elemento
buscado, buscar en la primera mitad.
3. Si el elemento en el centro del vector es menor que el elemento
buscado, buscar en la segunda mitad.
1 funcion BusquedaBinaria (V: vector de natural ; elem,n : natural ) devuelve entero
2 variable E,D,medio : natural ;
3 encontrado : booleano ;
4 E←1;
5 D←n;
6 encontrado := falso ;
7 mientras ( (E  D) y no(encontrado) ) hacer
8 medio ← (E+D) / 2;
9 si (V[medio] = elem) entonces
10 encontrado ← cierto;
11 sino
12 si (V[medio] < elem) entonces
13 E ← medio + 1; // derecha.
14 sino
15 D ← medio - 1; // izquierda.
16 fsi
17 fsi
18 fmientras
19 si ( encontrado ) entonces
20 devuelve medio;
21 sino
22 devuelve -1;
23 fsi
24 ffuncion
Búsqueda binaria
Hallar elemento 22

10
Búsqueda binaria
Hallar elemento 22

11
Búsqueda binaria
Hallar elemento 22

12
Búsqueda binaria
Hallar elemento 22

13
Preguntas
Manos a la Obra, a programar ….
Resumen
1. Un algoritmo de búsqueda es aquel que está diseñado para localizar un
elemento con ciertas propiedades dentro de una estructura de datos.
2. La Búsqueda Secuencial busca un elemento de una lista utilizando un
valor destino llamado clave. Los elementos de una lista o vector se
exploran en secuencia.
3. La Búsqueda Binaria compara el dato buscado con el elemento central.
Según sea menor o mayor se prosigue la búsqueda con el subconjunto
anterior o posterior.

También podría gustarte