Tabelas
Classificação e Pesquisa de Quando redimensionar:
Dados n O tamanho da tabela se torna insuficiente para
acomodar as entradas
Aula 12 n A quantidade média de acessos para localizar as
Redimensionamento de Tabelas e Hashing Dinâmico; chaves se torna muito grande devido ao excesso
Funções Dependentes de Distribuição de colisões
n Quando houver uma quantidade significativa de
UFRGS INF01124 entradas marcadas como removidas
1
Hashing Dinâmico Tabela Estendível
O método hashing dinâmico tem como princípio a Objetivos
adequação dos mecanismos de cálculo de endereço à
evolução do conjunto de dados n Identificar as regiões da tabela onde está ocorrendo maior
número de colisões
w Proceder a expansão da tabela nessas regiões, sem
mudar a função de aleatorização
n Identificar as regiões que sofreram sucessivas remoções de
entradas na tabela
w Proceder a fusão de blocos, também preservando a
função de aleatorização
expandida:
w Quando um bloco está cheio (ou próximo disso), ele é
dividido em dois outros de mesmo tamanho, e as chaves Chave Função
Pseudo
chave
são distribuídas entre os novos blocos criados
C F (C)
n O acesso à área de dados é feito através de um diretório
n A função hash gera uma pseudo-chave Cada bloco é identificado pela seqüência dos primeiros “k” bits
da pseudo chave
O número “k” de bits utilizado determina o número de entradas
do diretório: 2k
2
Tabela Estendível Tabela Estendível
Caso mais simples Após um desdobramento
Compressão de Chaves
Alfanuméricas
Objetivo
n Minimizar o problema da representação numérica
excessivamente grande para ser armazenada em uma
palavra, para fins de operação.
Implementação
n Emprego do operador lógico “ou exclusivo” ( xor ): maneira
prática e usual de se fazer compressão
3
Operador XOR Exemplo
4
Funções dependentes da distribuição Funções dependentes da distribuição
Função Cumulativa das Freqüências Função Cumulativa das Freqüências (Cont.)
Domínio da função discreta F (x), que corresponde ao domínio S Obtém a tabulação das freqüências das chaves (função discreta
das chaves, é dividido em “m” intervalos iguais de distribuição), e usa a integral da mesma como base da
função de cálculo de endereços.
O valor de F (x) em cada intervalo correspondente ao total de
Seja, então, F (x) a função discreta de distribuição das chaves,
chaves cujos valores recaem naquele intervalo
e seja Fz (x) a função acumulativa de F (x):
Para cada intervalo i, 1 ≤ i ≤ m, teremos um certo valor de F(i)
Fz (x) = ∑ F (z)
z ≤x
1 5 5
2 7 12 20
3 10 22 18
4 12 34
15
5 18 52 13
12
6 25 77 10
7 13 90 10
8 6 96 7
6
5
9 3 99 5
3
10 1 100 1
i
1 2 3 4 5 6 7 8 9 10
5
Método da função cumulativa
das freqüências
Função Integral da Distribuição das Chaves
n
Fz(i) F z(i)
k
100
100 99 120
96
90
90 108
80 96
77
70 84
60 72
52
50 60
40 48
34
30 36
22
20 24
12
10 12
5
i
1 2 3 4 5 6 7 8 9 10
p C p i+1
i