Breve Explicación 
 Tablas Hash
home
explicación
TDA
atributos
diagrama
Implementacion
creditos
bibliografia

    Las Tablas Hash o Tablas de Dispersión permiten insertar, remover y buscar un elemento por medio de un key (llave).

    Estas operaciones presentan una complejidad constante O(1). De todas maneras, las tablas Hash requieren el doble de espacio  del que es necesario para guardar los elementos dentro de esta.

    Los elementos o Nodos se almacenan en ARREGLOS. El arreglo indice donde el elemento se guarda se decide usando una Funcion de Hash.

    Si una key (llave) de un elemnto y m son el tamaño total de la tabla de Hash, entonces la función h(k) regresa un integro entre 0 y -1

    Un arreglo simple puede ser visto como una función de hash y esta función regresaun entero.

    Las unicas keys que soporta son enteros. El arreglo debe ser lo suficientemente grande para soportar todos los enteros. En Java se requieren 232 elemnetos dde arreglos (4 mil millones).

    La primera opción para una tabla HASH (dispersión) seria usar la función que convierte otro tipo de key (llave) en un entero. por ejemplo una cadena (string) a un entero. (ver  Implementación, primera parte)

    Como segunda opción esta el  sobreponerse usando un arreglo más pequeño. ya que el número de elementos en un arreglo es más pequeño que el rango de posibles llaves.Estas llaves se dispersan hacia el mismo indice del arreglo. A esto se le conoce como COLISIÓN ya que previenen que las tablas tengan una complejidad de 0(1) en el peor de los casos.

    Una función de Hash consiste de DOS partes:
    1) Convertir la llave en un integro
    2)Convertir ese integro en el indice del arreglo

    Para que una función de hash sea más rapida, debe de reducirse el numero de COLISIONES.

    Para referencia y ejemplos ver la seccion de Implementación en la primera parte

[home] [explicación] [TDA] [atributos] [diagrama] [Implementacion] [creditos] [bibliografia]