La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Unidad 8 Métodos de Búsqueda

Presentaciones similares


Presentación del tema: "Unidad 8 Métodos de Búsqueda"— Transcripción de la presentación:

1 Unidad 8 Métodos de Búsqueda
Ingeniería en Sistemas Computacionales Estructura de Datos Unidad 8 Métodos de Búsqueda

2 La búsqueda 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 búsqueda termina exitosamente cuando se localiza el elemento que contiene la llave buscada, o termina sin éxito, cuando se determina que no aparece ningún elemento con esa llave.

3 Tipos de búsqueda Secuencial Binaria Hash En árboles
En arreglo desordenado En arreglo ordenado Binaria Hash En árboles

4 Cuantos elementos se deben visitar para encontrar:
Búsqueda 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 visitar para encontrar: Elemento 5 Elemento 1 Elemento 0 Elemento 3 1 2 3 4 5 7 9 8

5 Búsqueda 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 búsqueda finalizo sin éxito. La búsqueda es más eficiente cuando los elementos del arreglo están ordenados.

6 Búsqueda secuencial en arreglo ordenado
Cuantos elementos se deben visitar para encontrar: Elemento 5 Elemento 1 Elemento 0 Elemento 3 1 2 3 4 5 7 8 9

7 Búsqueda 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 código } regresa “No encontrada”

8 Búsqueda Binaria Requisitos para la búsqueda binaria son:
El arreglo debe estar ordenado en un orden específico de acuerdo al valor de la llave. Debe conocerse el número total de elementos que existen. Este método procesa la búsqueda de un elemento comparandolo con el elemento del centro del arreglo, si el elemento buscado es igual, termina la búsqueda; si es menor, se desecha la parte alta del arreglo, y repite el proceso con la primera mitad del arreglo; si es mayor, se desecha la parte baja del arreglo y repite el proceso con la parte alta del arreglo. Cuando no hay mas subdivisiones que comparar, el proceso termina con un fallo (no se encontró el elemento buscado).

9 Búsqueda Binaria Proceso general
Establecer los limites (inferior y superior) de los índices del arreglo Mientras (inferior < superior) Comparar la llave buscada con la llave localizada al centro del arreglo. Si la llave analizada corresponde a la buscada fin de búsqueda Si la llave buscada es menor que la analizada ajustar los limites inferior y superior para desechar una parte alta del arreglo Si la llave buscada es mayor que la analizada ajustar los limites inferior y superior para desechar una parte baja del arreglo El proceso de partir por la mitad el arreglo se repite hasta encontrar el registro o hasta que el tamaño de la lista restante sea cero , lo cual implica que el valor de la llave buscada no esta en la lista.

10 Búsqueda Binaria 1 Buscar elemento 12 1 2 3 3 4 5 5 6 7 7
(LI+LS)/2 (0+8)/2 = 4 Compara 12 = Arreglo[4]? 1 2 3 4 5 6 7 8 3 5 7 desecha la mitad del arreglo y repite el cálculo y la comparación 8 9 Buscar elemento 12 (LI+LS)/2 (5+8)/2 = 6 Compara 12 = Arreglo[6]? 12 13 50 termina la búsqueda con éxito, el elemento se encontró en la posición 6

11 Búsqueda Binaria Objeto busquedaBinaria (Arreglo a, Clave c){
limiteInferior = // 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”


Descargar ppt "Unidad 8 Métodos de Búsqueda"

Presentaciones similares


Anuncios Google