O fator de carga mede o quão cheia está uma tabela hash. Se o fator de carga for excedido, aumente o tamanho da tabela hash e recarregue as entradas em uma nova tabela hash maior. Isso é chamado de refazer. O fator de carga l (lambda) mede o quão cheia está uma tabela hash. É a razão entre o número de
elementos ao tamanho da tabela hash, ou seja, l = n / N, onde n denota o número de elementos e N o número de locais na tabela hash.
Observe que l é zero se a tabela hash estiver vazia. Para o esquema de endereçamento aberto, l está entre 0 e 1; l é 1 se a tabela hash estiver cheia. Para o esquema de encadeamento separado, l pode ser qualquer valor.
À medida que l aumenta, a probabilidade de uma colisão aumenta. Estudos mostram que você deve manter o fator de carga abaixo de 0,5 para o esquema de endereçamento aberto e abaixo de 0,9 para o esquema de encadeamento separado.
Manter o fator de carga abaixo de um determinado limite é importante para o desempenho do hash. Na implementação da classe java.util.HashMap na API Java, o limite 0,75 é usado. Sempre que o fator de carga exceder o limite, você precisará aumentar o tamanho da tabela hash e refazer todas as entradas no mapa em uma nova tabela hash maior. Observe que você precisa alterar as funções hash, pois o tamanho da tabela hash foi alterado. Para reduzir a probabilidade de rehashing, já que é caro, você deve pelo menos dobrar o tamanho da tabela hash. Mesmo com rehashing periódico, o hash é uma implementação eficiente para o mapa.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3