Escolar Documentos
Profissional Documentos
Cultura Documentos
TABELAS HASH
Roteiro
• Contextualização
• Conceitos Básicos
• Hashing (método de pesquisa)
– Hashing Perfeito
– Hashing Imperfeito
• Colisões
– Métodos de Tratamento de Colisões
• Limitações e demais aplicações
Roteiro
• Contextualização
• Conceitos Básicos
• Hashing (método de pesquisa)
– Hashing Perfeito
– Hashing Imperfeito
• Colisões
– Métodos de Tratamento de Colisões
• Limitações e demais aplicações
Contextualização
• Dado um conjunto de pares (chave,valor)
– determinar se uma chave está no conjunto e o
valor associado
– inserir um novo par no conjunto
– remover um par do conjunto
• Estruturas que podem ser usadas
– Tabelas simples (vetores ou listas)
– Árvores de busca
– Tabelas de espalhamento (hash)
Contextualização
• Os métodos de pesquisa vistos até agora buscam
informações armazenadas com base na comparação
de suas chaves.
0 1 2 3 4 5 6 7
20 ? 64 11 20 7 45 ?
11 ?
11 mod 8 = 3
Contextualização
• A utilização de hashing envolve
– Computar a função de transformação
– Tratar colisões.
• Uma função hash (h) deve:
– Mapear chaves em inteiros entre 0 e N-1, onde N é
o tamanho da tabela.
– Ser de computação simples
– Gerar entradas para a tabela com igual
probabilidade
Roteiro
• Contextualização
• Conceitos Básicos
• Hashing (método de pesquisa)
– Hashing Perfeito
– Hashing Imperfeito
• Colisões
– Métodos de Tratamento de Colisões
• Limitações e demais aplicações’
Conceitos Básicos
• Arranjos utilizam índices para armazenar as
informações.
1 2 3 4 5 6
Família
José Maria Leila Artur Jolinda Gisela Alciene
123.456.781-00 19
37
143.576.342-23
Função de 50
345.365.768-93
879.094.345-45
Hashing 85
999.999.999-99 20
Tabela
Hash 19 123.456.781-00; Fausto Silva; Av. Canal. Nº 45.
20
...
37 143.576.342-23; Carla Perez; Rua Celso Oliva. Nº 27.
...
50 345.365.768-93; Gugu Liberato; Av. Atlântica. S/N.
...
85 879.094.345-45 ; Hebe Camargo; Rua B. Nº 100.
...
Tabela Hash
• Em Computação a Tabela Hash é uma estrutura de
dados especial, que armazena as informações
desejadas associando chaves de pesquisa a estas
informações.
?
registro (chave k) X K registro
n-
1 n
chave dados
1 Os valores da chave podem
2 ser numéricos, alfabéticos
ou alfa-numéricos.
registro (K) E = f (K) X K registro
n-1
n
• Característica:
• Características:
• Principais causas:
– em geral o número N de chaves possíveis é muito maior
que o número de entradas disponíveis na tabela.
– não se pode garantir que as funções de hashing possuam
um bom potencial de distribuição (espalhamento).
Tratamento de Colisões
0 KM-1 K4
1 K5 K6
2 K1
3 KM-4 KM K3
M-2 K2
M-1
Exemplo de Encadeamento
2 H A V
4 C
6 E S
Encadeamento (Hashing aberto)
• Operações
Endereçamento Aberto (Rehash)
(ou Hashing Fechado)
• Característica Principal:
– A estratégia é utilizar o próprio espaço da tabela que
ainda não foi ocupado para armazenar a chave que
gerou a colisão.
– Quando o número de registros a serem armazenados
na tabela puder ser previamente estimado, então não
haverá necessidade de usar apontadores para
armazenar os registros
Endereçamento Aberto (Rehash)
(ou Hashing Fechado)