Método de plegado en hash : divide un valor clave en segmentos precisos que se agregan para formar un valor hash , y mira otra técnica es aplicar una función hash multiplicativa a cada segmento individualmente antes de agregar. Algunos métodos de plegado van un paso más allá e invierten cada otra pieza antes de la adición. Este método de plegado es independiente de la distribución .
Algoritmo:
- El método de plegado que se utiliza para crear funciones hash comienza cuando el elemento se divide en partes del mismo tamaño, es decir, la última parte puede no ser del mismo tamaño.
- El resultado de sumar estos bits es el valor hash, H(x) = (a + b + c) mod M , donde, b y c representan la clave preacondicionada dividida en tres partes y M es el tamaño de la tabla, y mod significa módulo .
- En otras palabras, la suma de las tres partes de la clave precondicionada se divide por el tamaño de la tabla. El resto es la clave hash.
Explicación:
Ejemplo 1: la tarea es plegar la clave 123456789 en una tabla hash de diez espacios (0 a 9).
- Se da que la clave, digamos X es 123456789 y el tamaño de la tabla (es decir, M = 10).
- Ya que puede dividir X en tres partes en cualquier orden. Dividámoslo en partes iguales.
- Por lo tanto, a = 123, b = 456, c = 789.
- Ahora, H(x) = (a + b + c) mod M es decir, H(123456789) =(123 + 456 + 789) mod 10 = 1368 mod 10 = 8 .
- Por lo tanto, 123456789 se inserta en la tabla en la dirección 8 .
Ejemplo 2: la tarea es plegar la clave 452378912 en una tabla hash de diez espacios (0 a 9).
- Se da que la clave, digamos X es 452378912 y el tamaño de la tabla (es decir, M = 10).
- Ya que puede dividir X en tres partes en cualquier orden. Dividámoslo en partes iguales.
- Por lo tanto, a = 452, b = 378, c = 912.
- Ahora, H(x) = (a + b + c) mod M es decir, H(452378912) =(452 + 378 + 912) mod 10 = 1742 mod 10 = 2 .
- Por lo tanto, 452378912 se inserta en la tabla en la dirección 2 .
Publicación traducida automáticamente
Artículo escrito por siddharth_25 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA