1 / 7

Tablas hash

M.I.A Daniel Alejandro García López. Tablas hash. Primer componente: Arreglo de cubetas.- Es una arreglo A de tamaño N, en el que se puede considerar que cada celda de A es una cubeta. Segundo componente: Función Hash.- mapea cada clave k con un entero del intervalo [0, N-1].

kiana
Download Presentation

Tablas hash

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. M.I.A Daniel Alejandro García López Tablas hash

  2. Primer componente: Arreglo de cubetas.- Es una arreglo A de tamaño N, en el que se puede considerar que cada celda de A es una cubeta. • Segundo componente: Función Hash.- mapea cada clave k con un entero del intervalo [0, N-1]. • Una función hash es “buena” si mapea las claves en tal forma que minimiza las colisiones hasta donde es posible. • Fácil y rápida de calcular. TABLAS HASH

  3. Proceso de obtención de tabla hash Mapeo de compresión Objetos arbitrarios Valor o código Hash 0 1 2 3 4 5 6 …N-1 …-3 -2 -1 0 1 2 3 …

  4. Toma una clave arbitraria k, y le asigna un valor entero. El entero asignado a una clave k se llama código hash o valor hash. Este valor no necesita encontrarse en el intervalo [0 N-1], y hasta puede ser negativo, pero es preferible que el conjunto de códigos hash eviten las colisiones lo más que se pueda. Codigo hash

  5. El código hash para una clave k no será adecuado, en el caso normal, para usarse de inmediato en un arreglo de cubetas, porque el intervalo de códigos hash posible para claves será mayor. Por lo tanto se requiere mapear, o relacionar los valores con los indices en el intervalo [0, N-1]. Mapas de compresion

  6. Elegir el número de elementos que deseamos almacenar en nuestra tabla Hash Elegir el número primo(N) mayor a nuestro numero de elementos a almacenar H(k)=|k| mod N Método de división o aritmética modular

  7. Encadenamiento separado: Forma sencilla y eficiente para manejar colisiones es hacer que cada cubeta guarde una referencia a una lista. • Demo • Direccionamiento abierto • Prueba lineal(Complicacion de eliminación)A[i+1] • Prueba cuadrática(A[i+f(j) mod N]: j=0,1,2,, j^2) • Doble hash(A[i+f(j) mod N]: j=1,2,3, j*h’(k); h’(k)=q-k-(k mod q)) Esquemas de manejo de colisión

More Related