"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Fator de carga e rehashing

Fator de carga e rehashing

Publicado em 2024-08-02
Navegar:542

Load Factor and Rehashing

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.

Declaração de lançamento Este artigo está reproduzido em: https://dev.to/paulike/load-factor-and-rehashing-28mm?1 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

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