Tabelas de Dispersão: Funções, Colisões e Eficácia

Classificado em Tecnologia

Escrito em em português com um tamanho de 1,61 KB.

Tabelas de Dispersão

Função de Dispersão

A função de dispersão converte a chave em um índice de alocação na tabela de dispersão, uma estrutura que associa chaves a valores. Ela calcula a posição onde a informação será inserida. Para ser eficiente, a função deve ser:

  • Computacionalmente eficiente (fácil e rápida de calcular).
  • Modular (calcular um valor dentro dos limites da tabela).
  • Gerar boa dispersão, minimizando colisões.

Colisões

Uma dispersão ineficiente causa colisões, quando chaves diferentes resultam na mesma posição. Existem duas técnicas para resolver colisões:

Separate Chaining (Encadeamento)

Elementos que colidem são armazenados em uma lista ligada no slot correspondente. Se o slot estiver vazio, seu valor é nulo. A pesquisa envolve calcular o hash e buscar na lista. Com distribuição uniforme de chaves, a eficácia média depende do número médio de elementos nas listas.

Opções para armazenar elementos em colisão:

  • Listas ordenadas (reduzem o custo médio de busca).
  • BSTs autoequilibradas.

Caso Pior: Todas as chaves caem no mesmo slot (eficácia O(n) + tempo do cálculo do hash).

Caso Médio: Depende do número de colisões. Com distribuição uniforme, é O(n + α).

Open Addressing (Endereçamento Aberto)

Usado quando o número de elementos é previsível e menor que o tamanho da tabela. Para cada colisão, uma nova posição é buscada. A pesquisa envolve o cálculo do hash e a busca na nova posição.

Entradas relacionadas: