Escolar Documentos
Profissional Documentos
Cultura Documentos
1 / 25
Sumrio a
Hashing
1
2 / 25
Idia bsica: e a
3 / 25
4 / 25
5 / 25
6 / 25
As chaves so colocadas em baldes (como no hashing esttico). a a As chaves cujo endereo hash gerado tem com o mesmo prexo compartilham o c mesmo balde. Usa uma trie com base 2 para acesso rpido aos baldes: a
Usa-se o prexo do endereo gerado por H(chave) (normalmente na ordem inversa) c para localizar o balde desejado. A representao da trie na forma de um diretrio (vetor) permite o aumento do ca o nmero usado de bits do endereo. u c
Observao ca
A busca no feita em termos de chaves individuais, mas em termos de baldes contendo a e chaves, como no hashing esttico. a
7 / 25
Balde A contm chaves cujos endereos iniciam com 01, ou 00. e c Balde B contm chaves iniciando com 10. e Balde C contm chaves iniciando com 11. e
8 / 25
Como representar amos a Trie? Se representarmos como uma estrutura de rvore, somos forados a fazer vrias a c a comparaoes conforme vamos descendo na rvore. c a Pior ainda, se a trie se tornar muito grande e for armazenada em disco, enfrentaremos os mesmos problemas associados ao armazenamento de rvores em a disco. Nesse caso, seria melhor voltar pra as rvores-B e esquecer hashing extens a vel.
9 / 25
Figura: Cada balde contm um conjunto de e ndices. Note que as chaves geram a mesma entrada para o diretrio. o
10 / 25
Implementao ca
Porque usar hashing? Porque no utilizar o prexo na chave para fazer a trie? a
Porque a funo hasing deve gerar uma distribuio mais uniforme. ca ca
11 / 25
Uma vez obtida a soma utilizamos uma quantidade de bits (2 no exemplo anterior), para fazer a Trie. Normalmente, so utilizados os bits menos signicativos em ordem reversa. Porque? a Os bits menos signicativos variam mais.
12 / 25
Tratamento de Overow
O objetivo do Hashing extens proporcionar uma maneira de aumentar o espao vel e c de endereos em resposta a um overow, ao invs de criar longas seqncias c e ue overow (baldes e/ou registros) que precisam ser pesquisadas linearmente.
13 / 25
14 / 25
Figura: A redistribuio das chaves de B baseada nas conguraes de bits 100 e 101. ca e co
15 / 25
16 / 25
4) Achata a rvore binria completa e expande o diretrio usando os prexos como a a o endereos de baldes. c
17 / 25
Esses bits funcionaro como endereos para busca no diretrio extens a c o vel.
O diretrio pode expandir ou encolher, se o arquivo for muito voltil. o a
Nos exemplos mostrados, a rvore comeou com dois n a c veis e depois foi expandida para trs e n veis, quando o balde B encheu.
18 / 25
Achata (reduz) o diretrio se o cada par associado aponta para um mesmo balde.
19 / 25
Elimina chave
Se chaves de B e D cabem em um balde, concatena B e D. Se diretrio pode ser achatado: o
Copia referncias de baldes de apenas e um dos baldes associados. Reduz tamanho para metade.
20 / 25
Tempo
Diretrio na memria: O(1). o o Diretrio paginado (muito grande para car em memria): O(2). o o
Espao c
Fator de utilizao para os baldes. ca
Fator de utilizao = em mdia 69%. ca e
21 / 25
Hashing Dinmico a
Similar a hash esttico com rea de overow na forma de rvore com referncias para a a a e baldes.
22 / 25
Hashing Dinmico a
23 / 25
Hashing Linear
Utiliza a mesma funo de hash. ca A funo linear apresenta a ordem em que os baldes devem ser redistribu ca dos.
24 / 25
Hashing Linear
25 / 25