tablas hash

Download Tablas hash

If you can't read please download the document

Upload: kiana

Post on 09-Jan-2016

23 views

Category:

Documents


0 download

DESCRIPTION

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]. - PowerPoint PPT Presentation

TRANSCRIPT

  • M.I.A Daniel Alejandro Garca Lpez

  • Primer componente: Arreglo de cubetas.- Es una arreglo A de tamao N, en el que se puede considerar que cada celda de A es una cubeta.Segundo componente: Funcin Hash.- mapea cada clave k con un entero del intervalo [0, N-1].Una funcin hash es buena si mapea las claves en tal forma que minimiza las colisiones hasta donde es posible.Fcil y rpida de calcular.

  • Objetos arbitrariosValor o cdigo HashMapeo de compresin-3 -2 -1 0 1 2 3 0 1 2 3 4 5 6 N-1

  • Toma una clave arbitraria k, y le asigna un valor entero. El entero asignado a una clave k se llama cdigo 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 cdigos hash eviten las colisiones lo ms que se pueda.

  • El cdigo 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 cdigos 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].

  • Elegir el nmero de elementos que deseamos almacenar en nuestra tabla HashElegir el nmero primo(N) mayor a nuestro numero de elementos a almacenarH(k)=|k| mod N

  • Encadenamiento separado: Forma sencilla y eficiente para manejar colisiones es hacer que cada cubeta guarde una referencia a una lista.DemoDireccionamiento abiertoPrueba lineal(Complicacion de eliminacin)A[i+1]Prueba cuadrtica(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))