Hashing

1528 palavras 7 páginas
Estruturas de Dados

Hashing
Prof. Ricardo J. G. B. Campello
Parte deste material é baseado em adaptações e extensões de slides disponíveis em http://ww3.datastructures.net (Goodrich & Tamassia).

Motivação
Árvores AVL permitem realizar as operações básicas de busca, inserção e remoção de itens em tempo O(log n), o n é o no. de itens É possível conseguir desempenho melhor ???

1

Hashing
Uma abordagem para tentar obter desempenho superior àquele das árvores AVL é conhecida como hashing Essa abordagem utiliza uma estrutura de dados denominada tabela hash
Também denominada tabela de dispersão

Tabela Hash
Uma tabela hash para um dado tipo de chave consiste de:
Uma função hash h Um arranjo (tabela) de tamanho N

Uma função hash h mapeia chaves de um dado tipo em inteiros em um intervalo fixo [0, N − 1]
O valor inteiro h(k) ∈ [0, N − 1] é chamado de valor hash da chave k

2

Tabela Hash
Aplicação em Mapas / Dicionários:
Item com chave k armazenado no índice i = h(k) da tabela O índice é calculado, não procurado

Tabela Hash - Exemplo
Tabela hash para um mapa armazenando itens (CPF, Dados Pessoais), onde a chave CPF é um inteiro positivo com 11 dígitos No exemplo ao lado utilizase um arranjo de tamanho N = 10.000 e a seguinte função hash: h(k) = 4 últimos dígitos de k

0 1 2 3 4 9997 9998 9999


025.612.000-01 981.101.000-02


451.229.000-04


200.751.799-98





Pode haver conflitos...?

3

Colisões
Colisões ocorrem quando diferentes chaves são mapeadas sem distinção na mesma célula da tabela Colisões podem ocorrer tanto na fase de codificação das chaves (h1) como na fase de compressão (h2) Ocorrendo na fase de codificação, não há como serem revertidas na fase de compressão Colisões requerem tratamentos a

0∅ 1 2∅ 3∅ 4

612-0001

229-0004

101-0004

posteriori que, por sua vez, demandam esforço computacional Funções hash devem ser simples e rápidas de calcular, minimizando ao máximo colisões

Note

Relacionados

  • Hashing
    1188 palavras | 5 páginas
  • hashing
    2042 palavras | 9 páginas
  • Hashing
    1437 palavras | 6 páginas
  • hashing
    1560 palavras | 7 páginas
  • Técnicas de hashing
    717 palavras | 3 páginas
  • Pesquisa Hashing
    880 palavras | 4 páginas
  • Hashing externo
    1160 palavras | 5 páginas
  • Tabela Hashing
    1241 palavras | 5 páginas
  • Aula-hashing
    675 palavras | 3 páginas
  • Índice Clustered e Hashing
    1159 palavras | 5 páginas