El hash estático es una forma de hash en la que las búsquedas se realizan sobre un conjunto de diccionarios finalizado (todos los objetos del diccionario son definitivos y no cambian).
Uso
Solicitud
Dado que el hash estático requiere que la base de datos , sus objetos y referencias permanezcan iguales, sus aplicaciones son limitadas. Las bases de datos que contienen información que cambia con poca frecuencia también son aptas, ya que solo requeriría un rehash completo de toda la base de datos en raras ocasiones. Ejemplos de esto incluyen conjuntos de palabras y definiciones de idiomas específicos, conjuntos de datos importantes para el personal de una organización, etc. [ 1 ]
Hashing perfecto
El hash perfecto es un modelo de hash en el que cualquier conjunto deLos elementos se pueden almacenar en una tabla hash de igual tamaño y se pueden realizar búsquedas en tiempo constante. Fue descubierto y analizado específicamente por Fredman, Komlos y Szemeredi (1984) y, por lo tanto, se le ha apodado "hashing FKS". [ 2 ]
Hashing FKS
El hash FKS utiliza una tabla hash con dos niveles en la que el nivel superior contienecubetas que contienen cada una su propia tabla hash. El hash FKS requiere que, si se producen colisiones , estas solo ocurran en el nivel superior.
Implementación
El nivel superior contiene una función hash creada aleatoriamente,, que se ajusta a las restricciones de una función hash de Carter y Wegman del hash universal . Habiendo hecho esto, el nivel superior deberá contenercubos etiquetadosSiguiendo este patrón, todos los cubos contienen una tabla hash de tamañoy una función hash respectivaLa función hash se decidirá mediante la configuraciónay recorriendo aleatoriamente las funciones hasta que no haya colisiones. Esto se puede hacer en tiempo constante.
Actuación
Porque haypares de elementos, de los cuales tienen una probabilidad de colisión igual a, el hash FKS puede esperar tener estrictamente menos decolisiones. Basándose en este hecho y en que cadase seleccionó de manera que el número de colisiones fuera como máximo, el tamaño de cada mesa en el nivel inferior no será mayor que.
Véase también
Referencias
- ↑ Daniel Roche (2013). SI486D: Aleatoriedad en computación, unidad de hash . Academia Naval de los Estados Unidos, Departamento de Ciencias de la Computación.
- ^ Michael Fredman; János Komlós; Endre Szemerédi (1984). Almacenamiento de una tabla dispersa con O(1) tiempo de acceso al peor caso . Revista de la ACM (Volumen 31, Número 3).
- Hashing