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.