Aplicaciones, ventajas y desventajas de la estructura de datos hash

Hash o tabla Hash es una estructura de datos que asigna claves a valores utilizando una función especial llamada función hash . Hash almacena los datos de forma asociativa. Almacena datos en una array donde cada valor de datos tiene su propio índice único. Hashing proporciona acceso seguro y recuperación de los datos.

Resolución de colisiones: la resolución de colisiones en hash se puede realizar mediante dos métodos: 

Direccionamiento abierto: la técnica de resolución de colisiones de direccionamiento abierto implica generar una ubicación para almacenar o buscar los datos llamada sonda . Se puede hacer de las siguientes maneras:

  • Sondeo lineal: si hay una colisión en i , entonces usamos la función hash – H(k, i ) = [H'(k) + i ] % m
    donde, i es el índice, m es el tamaño de la tabla hash H ( k, i ) y H'( k ) son funciones hash.
  • Sondeo cuadrático: si hay una colisión en i , entonces usamos la función hash –   H(k, i ) = [H'(k) + c 1 * i + c 2 * i 2 ] % m
    donde i es el índice , m es el tamaño de la tabla hash H(k, i ) y H'( k ) son funciones hash, c 1 y c 2 son constantes.
  • Hashing doble: si hay una colisión en i , entonces usamos la función hash – H(k, i ) = [H 1 (k, i) + i * H 2 (k) ] % m
    donde i es el índice, m es el tamaño de la tabla hash H(k, i ) , H 1 ( k ) = k % m y H 2 (k ) = k % m’ son funciones hash.

Direccionamiento cerrado:

La técnica de resolución de colisiones de direccionamiento cerrado implica el enstringmiento. El enstringmiento en el hashing involucra tanto la array como la lista enlazada. En este método, generamos una sonda con la ayuda de la función hash y vinculamos las claves al índice respectivo una tras otra en el mismo índice. Por lo tanto, resolviendo la colisión.

Aplicaciones del hachís:

  • Hash se utiliza en bases de datos para la indexación.
  • Hash se utiliza en estructuras de datos basadas en disco.
  • En algunos lenguajes de programación como Python, el hash de JavaScript se usa para implementar objetos. 

Aplicaciones en tiempo real de Hash:

  • Hash se utiliza para el mapeo de caché para un acceso rápido a los datos.
  • Hash se puede utilizar para la verificación de contraseña.
  • Hash se usa en criptografía como un resumen de mensaje.

Ventajas del hachís:

  • Hash proporciona una mejor sincronización que otras estructuras de datos.
  • Las tablas hash son más eficientes que los árboles de búsqueda u otras estructuras de datos.
  • Hash proporciona un tiempo constante para las operaciones de búsqueda, inserción y eliminación en promedio.

Desventajas del hachís:

  • Hash es ineficiente cuando hay muchas colisiones.
  • Las colisiones hash prácticamente no se pueden evitar para un gran conjunto de claves posibles.
  • Hash no permite valores nulos. 

Publicación traducida automáticamente

Artículo escrito por aayushi2402 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *