Estruturas de Dados - T.332

Capítulo 9

Hashing


ou "Tabelas de Comprovação Complementar"
ou "Técnica de Transformação de Chaves"


9.1 Recapitulação
9.2 Hashing: Visão Geral
9.3 Hashing Aberto ou de Encadeamento Separado
9.4 Hashing Fechado ou de Endereçamento Aberto
9.5 Complexidade
9.6 Vantagens
9.7 Desvantagens
9.8 Função de Hashing
9.9 Exercícios



9.1 Recapitulação 9.2 Hashing: Visão Geral 9.2.1 Hashing: Introdução 9.2.1.1. Exemplo
 
 


 
 

9.2.1.2 Nomenclatura


9.3 Hashing Aberto ou de Encadeamento Separado (Separate Chaining Hashing)


9.3.1Hashing Aberto ou de Encadeamento Separado

Implementação com a Tabela como Vetor

9.3.2 Hashing Aberto ou de Encadeamento Separado

Implementação como Multilista


 
 
 


9.4 Hashing Fechado ou de Endereçamento Aberto (Open Addressing Hashing)
Implementação com busca seqüencial após estouro.
Suponha h(k) como mod(k, 10)
 
 
9.5 Complexidade 1. O tempo para calcular a função de hashing

2. O tempo para encontrar o início do depósito indicado pela função de hashing através da tabela de hashing

3. O tempo para encontrar a chave procurada dentro do seu depósito.
 
 


9.6 Vantagens
9.7 Desvantagens
9.8 Função de Hashing 9.8.1 Funções de Hashing
9.8.1.1 Divisão Suponha b=1000 e a sequinte seqüência de chaves [Villas et.al.]:
1.030, 839, 10.054 e 2030.

Teremos a seguinte distribuição:

Chave Endereço

1030             30

10054           54

839             839

2030             30
 
 


9.8.1.2 Meio do Quadrado
9.8.1.3 Folding ou Desdobramento Folding: Shift Folding 123
203
241
112
 20
699
Folding: Limit Folding
123
302
241
211
20
897

9.8.1.4 Análise de Dígitos
9.9 Exercícios