Aula 14

Tabelas Hash: Funções de Espalhamento e Resolução de Colisões

Estruturas de Dados Avançadas

Objetivos Didáticos

  • Mapeamento chave-valor em O(1) médio, funções hash (djb2, murmur), resolução de colisões por encadeamento externo (Separate Chaining) e endereçamento aberto (Linear Probing).
  • Eficiência assintótica de tempo e espaço
  • Implementação em C com integridade de memória

Conceitos Fundamentais

  • Função Hash
  • Colisão de Hash
  • Encadeamento Separado
  • Linear Probing
  • Fator de Carga (Load Factor)

Estrutura de Implementação

// Função Hash djb2 para Strings
unsigned long hash_djb2(const unsigned char *str) {
    unsigned long hash = 5381;
    int c;
    while ((c = *str++))
        hash = ((hash << 5) + hash) + c; /* hash * 33 + c */
    return hash;
}

Próximos Passos

Acesse os Exercícios com Gabarito e o Projeto Prático.