Universidad Diego PortalesFacultad de Ingenier´ıaEscuela de Ingenier´ıa Inform´aticaCurso: Estructura de DatosProfesor: Sergio MujicaAyudante: Jaime Guzm´an
1 Hashing Abierto
Consiste en tener una lista de todos los elementos que se dispersan en el mismo valor, es decir, una listaenlazada de registros cuyas llaves(keys) concurran a esa direccion. La cantidad de tiempo requerido parauna busqueda dependera de la longitud de las listas y de las posiciones relativas de las llaves en ellas. Situvieramos que manejar colisiones ademas de las listas enlazadas, se podria usar cualquier esquema pararesolver colisiones, como un arbol binario de busqueda. Diremos que
λ
es el factor de carga de un tabla dehash, el cual representa :
λ
=
Numero de keys en la tablaN
,donde
N
es el tama˜no de la tabla.
2 Hashing Cerrado
•
Al contrario con el hashing abierto si ocurre una colision, se intenta buscar celdas alternativas hastaencontrar una vacia.
•
El problema de encontrar espacios vacios se puede solucionar con el rehashing
•
Como todos los datos se meten en la tabla, esta tiene que ser mas grande para una dispersion cerradaque para una abierta.
3 Exploracion Lineal
Por lo general la estrategia de resolucion
f
(
x
) es una funcion lineal que resuelve las colisiones . Esto equivalea buscar secuencialmente en el vector (con circularidad) hasta que encontremos una posicion vacia. En tantoque la tabla sea suficientemente grande, siempre se puede encontrar una celda vacia, pero ello puede tomardemasiado tiempo y posiblemente produsca agrupamiento primarios. El numero medio de celdas examinadasen una insercion con exploracin lineal es cercano a12(1 +1(1
−
λ
)
2
)Y el costo de una busqueda con exito es la media de los costes de las inserciones en tablas con factores decarga mas peque˜nos.12(1 +11
−
λ
)1
Add a Comment