Escolar Documentos
Profissional Documentos
Cultura Documentos
DCC405-Estrutura de Dados II
Prof. Me. Acauan C. Ribeiro
DCC405-Estrutura de Dados II | Tabela Hash 2/37
O que você está procurando?
Pessoa ...
Animal ...
Homem, roupas listradas ...
Mulher, roupas de banho
Ler:
→ Cap 11 – Tabelas de
Espalhamento – Livro:
Algoritmos - Teoria e
Prática - Cormen – 3nd.
●
DCC405-Estrutura de Dados II | Tabela Hash 19/37
Tabela Hash
● Assim, podemos entender uma tabela de hash como uma pesquisa de valor-chave. Assim, dada uma chave
associada a um valor (dados), podemos recuperar o valor correspondente através de uma rápida pesquisa na
tabela.
● Por exemplo, podemos associar os nomes das pessoas com suas informações pessoais com uma tabela de hash.
Desta forma, os nomes das pessoas são nossas chaves brutas. Uma função de hash processa essas chaves brutas
para determinar seus índices correspondentes na tabela de hash, fornecendo acesso direto às informações pessoais.
Fator de Carga
carga = n / k
Onde n é o número de chaves inseridas e k é o número de espaços disponíveis no array/tabela como um todo (total de
endereços). Os valores do fator de carga variam entre 0.0 e 1.0.
Quanto maior o fator de carga, menor a chance de o tempo de execução ser constante O(1). Ou seja, quanto menos
espaços disponíveis dentro da tabela, maior a chance de colisão para novas chaves.
É muito comum estabelecer um limite superior ao qual o fator de carga sempre deve estar abaixo. Cada
implementação de tabelas Hash pode escolher sua estratégia. Mas um exemplo seria ao chegar em um fator de carga
igual a 0.8 se faz uma realocação da tabela de modo a aumentar o valor de k, ou seja, o número total de espaços
disponíveis (comumente chamados de buckets).
Ver:
https://realpython.com/python-hash-table/
https://www.journaldev.com/35238/hash-table-in-c-plus-plus