de Ingeniera de Sistemas
Algortmica III
Captulo 6
Mtodos de Bsqueda
Lic. Jorge Luis Chvez Soto
Contenido
Introduccin. Clasificacin de la Bsqueda. Mtodos de Bsqueda Interna. Bsqueda Secuencial. Anlisis. Bsqueda Secuencial usando Bloques. Determinacin del Bloque. Anlisis. Bsqueda Secuencial usando ndices. Bsqueda d Binaria. Anlisis. l rbol Binario de Bsqueda. Bsqueda, Insercin y Eliminacin Anlisis. Eliminacin. Anlisis Mtodos de Bsqueda Externa.
Introduccin
La bsqueda es una operacin que nos permite recuperar informacin previamente almacenada. almacenada
El resultado de la operacin es el xito en el caso de encontrar t el l elemento l t buscado b d y de d fracaso f en caso contrario. Ejemplos: l Directorios de archivos ordenados. Ofertas laborales ordenados p por tipo p de trabajo. j Libros de la biblioteca ordenados por autor y tema.
Clasificacin de la Bsqueda
Bsqueda Interna: Cuando los elementos se encuentran en memoria i principal. i i l Bsqueda externa: Cuando todos los elementos se encuentran en memoria secundaria
Estos pueden ser almacenados en estructuras estticas como arreglos y estructuras dinmicas como listas enlazadas y rboles.
Bsqueda Secuencial lineal Bsqueda Secuencial con Bloques Bsqueda con ndices. Bsqueda Binaria. Bsqueda por transformacin de clave (hash). rboles Binarios de Bsqueda.
Bsqueda Secuencial
Hasta encontrar el dato ms buscado Hasta llegar al final de la lista de datos disponibles.
B Bsqueda d Secuencial S i l en Arreglo A l Desordenado. D d d Bsqueda Secuencial en Arreglo Ordenado Bsqueda Secuencial en Lista Enlazada Desordenada B Bsqueda d Secuencial S i l en Lista Li t Enlazada E l d Ordenada Od d
Determina la operacin elemental, se tiene que definir los lmites de dicha operacin. Caso peor Caso medio Caso mejor mejo
La operacin p elemental seleccionada es la comparacin. p Caso Mejor: El elemento buscado est en la primera posicin. Caso Mejor = 1
Misma probabilidad de la distribucin de los datos. Misma probabilidad de encontrar al elemento buscado en cualquier posicin del arreglo. El nmero de comparaciones puede ser 1, 2, 3, ..., n y en cada paso debe darse una p probabilidad de 1/n /
=1
+2
+3
+ ... + n
= (1 + 2 + 3 + ... + n )
n +1 n (n + 1 ) 1 = = 2 2 n
La operacin comparacin.
elemental
seleccionada
es
la
No existe N i t una forma f a para etiquetar ti t los l nodos d de d la lista. La forma ms eficiente de representar una lista para efectuar una bsqueda es en un matriz de dos columnas. columnas El anlisis debe ser exactamente igual a los anteriores ya efectuados.
El vector debe estar ordenado p para este mtodo. Trabajar con bloque de elementos en vez de elementos aislados. El tamao del bloque de elementos depende del nmero de elementos del vector vector. Se realiza comparando la clave con el ltimo elemento de cada bloque. bloque Si la clave resulta menor, se busca secuencialmente en los elementos l t salteados lt d del d l bloque bl d elementos. de l t
La operacin elemental seleccionada es la comparacin. Caso Mejor: El elemento buscado se encuentre en el ltimo elemento del primer bloque. Caso Mejor = 1
Caso Peor: El elemento buscado se encuentre en la penltima posicin del ltimo bloque y donde todos los bloque sean del mismo tamao.
En el caso de que el ltimo bloque no sea del mismo tamao que el resto, estara dado por el penltimo elemento del penltimo bloque. Caso Peor = N/(N)1/2 +((N)1/2 -1) = 2N/(N)1/2 1
Caso Medio: El elemento buscado se encuentra en la posicin i en el arreglo. Caso Medio = [ 2N/(N)1/2 1 + 1 ]/2 = 2N/(N)1/2
El mtodo emplea vectores ordenados. Una alternativa es usando un vector principal y un vector con di ndices.
El vector principal trabajara con los datos ordenados. ordenados El vector de ndices almacenar:
Los valores de los campos claves correspondiente a los elementos del vector principal y un apuntador a la posicin en el vector principal de los datos respectivos.
Bsqueda Binaria
Se efecta sobre arreglos ms no sobre listas. listas Los datos previamente deben estar ordenados. ordenados Consiste en comparar el valor buscado con el elemento medio y discriminar si se encuentra en medio, la mitad superior la mitad inferior. Para luego proseguir con esta misma tctica en el bloque definido anteriormente.
La operacin elemental seleccionada es la comparacin. Caso Mejor: El elemento buscado est en la posicin del medio de la lista. lista Caso Mejor = 1 Caso Peor: El l elemento l b buscado d no se encuentra en el l arreglo. l
El problema consiste en que no se sabe a priori cuantas comparaciones van a realizarse. Habr tantas comparaciones como elementos medios.
Es menor que los valores del subrbol derecho Es mayor o igual que los valores del subrbol izquierdo.
3 2 1 4 5 6
Si VALOR < N hijo j izquierdo q de N Si VALOR > N hijo derecho de N Repetir el paso (1) y (2) hasta que las siguientes condiciones:
38
14
56
23
45
82
Si VALOR = N puntero al nodo encontrado. Si hay un subrbol vaci La bsqueda ha sido infructuosa
19
70
El p proceso consiste en insertar el VALOR. Si VALOR < N el hijo izquierdo de N. Si VALOR > N el hijo derecho de N. Si VALOR = N y existe hijo izquierdo el hijo izquierdo de N. N Repetir el paso (1) , (2) y (3) hasta que 8 las siguientes condiciones: Si hay un subrbol vaci Se inserta en el subrbol vaci. vaci
14 56 38
23
45
82
19
70
El proceso consiste es eliminar el VALOR. Caso 1: N no tiene hijos N se elimina y se remplaza el puntero del padre a N por el puntero t nulo. l Caso2: N tiene un hijo N se elimina y es reemplazando el puntero a N del Padre por puntero al hijo nico de N
8 14 38
56
23
45
82
Caso 3: N tiene dos hijos, hijos N se elimina y es remplazado por el nodo que est ms a la derecha en el subrbol izquierdo.
19
70
Las operaciones bsicas sin destruir la propiedad del rbol es importante importante, puede resultar un rbol desequilibrado desequilibrado. Muchos nodos pueden tener un solo hijo y as sus ramas se vuelven l l largas y delgadas, d l d con esto t se vuelve l ineficiente. El peor caso todos los nodos pueden tener un solo hijo. Buscar un valor en el significa comparar prcticamente con los n nodos del rbol. Existen mtodos para equilibrar el rbol y que las operaciones de bsqueda, adicin, borrado requieran un tiempo que q e este en O(Log n) en el caso peor peo
Datos almacenados en memoria secundaria y se usa archivos. Archivos por que el volumen de datos permanencia de datos. O Operaciones i d escritura de it y lectura l t ti tienen alto lt costo t en tiempo. ti Reducir el costo se optimiza la operacin de bsqueda. Las ms importantes son:
en Archivos Secuenciales. en Archivos Secuenciales con Bloques con ndices. Binaria. por transformacin de clave (Hash).