"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Factor de carga y refrito

Factor de carga y refrito

Publicado el 2024-08-02
Navegar:316

Load Factor and Rehashing

El factor de carga mide qué tan llena está una tabla hash. Si se excede el factor de carga, aumente el tamaño de la tabla hash y vuelva a cargar las entradas en una nueva tabla hash más grande. A esto se le llama refrito. El factor de carga l (lambda) mide qué tan llena está una tabla hash. Es la razón del número de
elementos al tamaño de la tabla hash, es decir, l = n / N, donde n denota el número de elementos y N el número de ubicaciones en la tabla hash.

Tenga en cuenta que l es cero si la tabla hash está vacía. Para el esquema de direccionamiento abierto, l está entre 0 y 1; l es 1 si la tabla hash está llena. Para el esquema de encadenamiento separado, l puede tener cualquier valor.

A medida que l aumenta, aumenta la probabilidad de una colisión. Los estudios muestran que debe mantener el factor de carga por debajo de 0,5 para el esquema de direccionamiento abierto y por debajo de 0,9 para el esquema de encadenamiento separado.

Mantener el factor de carga por debajo de un cierto umbral es importante para el rendimiento del hash. En la implementación de la clase java.util.HashMap en la API de Java, se utiliza el umbral 0,75. Siempre que el factor de carga supere el umbral, deberá aumentar el tamaño de la tabla hash y repetir todas las entradas del mapa en una nueva tabla hash más grande. Tenga en cuenta que necesita cambiar las funciones hash, ya que se ha cambiado el tamaño de la tabla hash. Para reducir la probabilidad de repetición, ya que es costosa, al menos debes duplicar el tamaño de la tabla hash. Incluso con repeticiones periódicas, el hash es una implementación eficiente para el mapa.

Declaración de liberación Este artículo se reproduce en: https://dev.to/paulike/load-factor-and-rehashing-28mm?1 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3