Beruflich Dokumente
Kultur Dokumente
Estructura de Datos
Unidad 8
Mtodos de Bsqueda
La bsqueda es el proceso de localizar en una
estructura (arreglo o archivo) a un elemento
especifico que puede ser identificado por uno de
sus atributos conocido normalmente como clave
de acceso o llave.
La bsqueda termina exitosamente cuando se
localiza el elemento que contiene la llave
buscada, o termina sin xito, cuando se
determina que no aparece ningn elemento con
esa llave.
Tipos de bsqueda
Secuencial
En arreglo desordenado
En arreglo ordenado
Binaria
Hash
En rboles
Bsqueda Secuencial
En arreglo desordenado:
Procesa los elementos del arreglo de uno a
uno hasta encontrar el elemento buscado o
el final del arreglo.
Arreglo desordenado Cuantos elementos se deben
3 visitar para encontrar:
0
1 5 a) Elemento 5
2 7 b) Elemento 1
3 9 c) Elemento 0
4 8 d) Elemento 3
5 1
Bsqueda Secuencial
En arreglo ordenado:
Procesa los elementos del arreglo de uno a
uno hasta encontrar el elemento buscado o
un elemento con clave mayor o el fin de
archivo con lo cual determina que la
bsqueda finalizo sin xito.
La bsqueda es ms eficiente cuando los
elementos del arreglo estn ordenados.
Bsqueda secuencial en arreglo
ordenado
2 5 b) Elemento 1
3 7 c) Elemento 0
4 8 d) Elemento 3
5 9
Bsqueda secuencial
Calcular la complejidad de tiempo
// en arreglo desordenado
Objeto busquedaSecuencial (Archivo a, Clave c){
abrir archivo a
mientras (! eof(a)) {
r= leer archivo a
si (c == r.llave()) regresa r
}
regresa No encontrada
} // en arreglo ordenado
Objeto busquedaSecuencial (Archivo a, Clave c){
abrir archivo a
mientras (! eof(a)) {
// escribe el cdigo
}
regresa No encontrada
}
Bsqueda Binaria
Requisitos para la bsqueda binaria son:
El arreglo debe estar ordenado en un orden especfico de
acuerdo al valor de la llave.
Debe conocerse el nmero total de elementos que existen.
0 1 Buscar elemento 12
(LI+LS)/2
1 3
(0+8)/2 = 4
2 5
Compara 12 = Arreglo[4]?
3 7
desecha la mitad del arreglo y
4 8 repite el clculo y la comparacin
5 9 Buscar elemento 12
6 12 (LI+LS)/2
(5+8)/2 = 6
7 13 Compara 12 = Arreglo[6]?
8 50 termina la bsqueda con xito, el elemento se
encontr en la posicin 6
Bsqueda Binaria
Objeto busquedaBinaria (Arreglo a, Clave c){
limiteInferior =0 // primer ndice del arreglo
limiteSuperior = n // ltimo ndice del arreglo
mientras (limiteInferior <= limiteSuperior){
centro = (limiteInferior + limiteSuperior) /2
si (c==a[centro]) regresa a[centro]
sino {
si (c>a[centro]) limiteInferior = centro +1
sino limiteSuperior = centro -1
}
regresa No encontrado
}