Está en la página 1de 11

ING.

EN SISTMAS COMPUTACIONALES

Mtodos de bsqueda

ESTRUCTURA DE DATOS 1

ING. EN SISTMAS COMPUTACIONALES

Es una tcnica de bsqueda que permite que un registro se recupere directamente con un mnimo de comparaciones o sin ellas. Esto se lleva a cabo reservando una posicin en la tabla para cada posible valor de clave, de tal manera que todas las posiciones queden incluidas de acuerdo al valor de la clave. Un registro se recupera simplemente usando la clave, o una funcin de la clave, como ndice en la tabla

ESTRUCTURA DE DATOS 1

ING. EN SISTMAS COMPUTACIONALES

Figura 8.2 Cada clave tiene una nica posicin, pero hay varias posiciones vacas.

ESTRUCTURA DE DATOS 1

ING. EN SISTMAS COMPUTACIONALES

Para almacenar cada valor clave en una nica posicin, se requiere que la clave sea tan grande como el rango de claves. Si se presenta una proporcin pequea de claves, se desperdicia mucho espacio en la tabla. Una mejor manera de proporcionar recuperacin directa de registros, es conformar la tabla de tal forma que ciertas claves compartan en la posicin de la tabla. De esta manera tenemos la esencia del HASH. En particular, es claro que las claves que tericamente comparten el mismo lugar en la tabla, naturalmente no pueden compartir la posicin asignada. Este conflicto se debe resolver de alguna forma

ESTRUCTURA DE DATOS 1

ING. EN SISTMAS COMPUTACIONALES

8.4.1 Inserciones con Hash Dado un rango M de claves posibles, se proporciona una tabla con N entradas, donde N < M. La posicin de una clave particular se determina transformando la clave en un entero dentro del rango de 1 a N. El proceso de transformacin se llama HASHING y una transformacin particular se llama HASH.

Figura 8.3 Tabla con la funcin HASH: HASH(CLAVE) = CLAVE mod6 + 1 ESTRUCTURA DE DATOS 1

ING. EN SISTMAS COMPUTACIONALES

La figura 8.3 muestra una tabla con una funcin HASH, donde N = 6 y M = 36. Las posiciones vacantes se denotan por cero en el campo clave. Los registros se almacenan haciendo HASHIN a su clave y usando el resultado como ndice para determinar la posicin apropiada, en la tabla. En la figura 8.3 solo hay cuatro registros, suponga que se va a insertar en la tabla el registro que tiene clave 9. Pero HASH(9) = 4, y esa posicin esta ocupada por el registro 21, pues HASH(21) = 4 tambin. Es decir, las claves 9 y 21 son sinnimas. Al tratar de almacenar 9 se presenta una colisin pues la posicin ya est ocupada. Hay diferentes formas de solucionar esta situacin.
ESTRUCTURA DE DATOS 1

ING. EN SISTMAS COMPUTACIONALES

De las formas para solucionar el problema de las colisiones, una trivial sera buscar la primera posicin vacante y almacenar all el registro. Esto implica iniciar la bsqueda desde la posicin 1, luego la 2 y as sucesivamente hasta encontrar una posicin vacante o se examine toda la tabla.

ESTRUCTURA DE DATOS 1

ING. EN SISTMAS COMPUTACIONALES

Las funciones hash mas comunes son: Residuo de la divisin Medio del cuadrado Pliegue

ESTRUCTURA DE DATOS 1

ING. EN SISTMAS COMPUTACIONALES

HASHING POR RESIDUO DE LA DIVISIN


La idea de este mtodo es la de dividir el valor de la llave entre un numero apropiado, y despus utilizar el residuo de la divisin como direccin relativa para el registro (direccin = llave mdulo divisor).
ESTRUCTURA DE DATOS 1

ING. EN SISTMAS COMPUTACIONALES

HASHING POR MEDIO DEL CUADRADO


En esta tcnica, la llave es elevada al cuadrado, despus algunos dgitos especficos se extraen de la mitad del resultado para constituir la direccin relativa. Si se desea una direccin de n dgitos, entonces los dgitos se truncan en ambos extremos de la llave elevada al cuadrado, tomando n dgitos intermedios. Las mismas posiciones de n dgitos deben extraerse para cada llave.
ESTRUCTURA DE DATOS 1

ING. EN SISTMAS COMPUTACIONALES

HASHING POR PLIEGUE


En esta tcnica el valor de la llave es particionada en varias partes, cada una de las cuales (excepto la ultima) tiene el mismo numero de dgitos que tiene la direccin relativa objetivo. Estas particiones son despus plegadas una sobre otra y sumadas. El resultado, es la direccin relativa. Igual que para el mtodo del medio del cuadrado, el tamao del espacio de direcciones relativas es una potencia de 10.
ESTRUCTURA DE DATOS 1

También podría gustarte