Tabelas Hash

1787 palavras 8 páginas
Motivação
•Dada uma tabela com uma chave e vários valores por linha, quero rapidamente procurar, inserir e apagar registros baseados nas suas chaves

Tabelas Hash

•Estruturas de busca sequencial/binária levam tempo até encontrar o elemento desejado.
Ex: Arrays e listas

Ex: Árvores
8

5 2 6 1 7 8 4 9

2
5

•A estrutura com tal propriedade é chamada de tabela hash. 20 mod 8 = 4
1

2

3

4

5

6

1

6
4

• Os registros com as chaves são armazenados nessa tabela, e endereçados a partir de uma função de transformação sobre a chave de pesquisa
• A essa função dá-se o nome de Função HASHING
• Seja M o tamanho da tabela:
– A função de hashing mapeia as chaves de entrada em inteiros dentro do intervalo [1..M]
– A função de hashing h(kj)  [1,M] recebe uma chave

7

7

kj  {k0,..,km} e retorna um número i, que é o índice do

45 ?

subconjunto mi  [1,M] onde o elemento que possui essa

11 ?
11 mod 8 = 3

4

• Formalmente:

45 mod 8 = 5

11 20

64

1

Funções Hashing

•Em algumas aplicações, é necessário obter o valor com poucas comparações, logo, é preciso saber a posição em que o elemento se encontra, sem precisar varrer todas as chaves.

0

6

Motivação

20 ?

2

9

Funções Hashing

chave vai ser manipulado

Resto da Divisão

• Método pelo qual:
– As chaves de pesquisa são transformadas em endereços para a tabela (função de transformação);
– Obtém-se valor do endereço da chave na tabela HASH

• Tal função deve ser fácil de se computar e fazer uma distribuição equiprovável das chaves na tabela
• Existem várias funções Hashing, dentre as quais:






Resto da Divisão
Meio do Quadrado
Método da Dobra
Método da Multiplicação
Hashing Universal

• Forma mais simples e mais utilizada
• Nesse tipo de função, a chave é interpretada como um valor numérico que é dividido por um valor
• O endereço de um elemento na tabela é dado simplesmente pelo resto da divisão da sua chave por M (Fh(x) = x mod M), onde M é o tamanho da

Relacionados

  • Tabelas HASH
    1019 palavras | 5 páginas
  • Tabela hash
    510 palavras | 3 páginas
  • Tabela hash
    289 palavras | 2 páginas
  • Tabela Hash
    2579 palavras | 11 páginas
  • Tabelas Hash
    2134 palavras | 9 páginas
  • Tabela Hash
    1859 palavras | 8 páginas
  • Tabela hash
    14106 palavras | 57 páginas
  • PESQUISA TABELA HASH
    1659 palavras | 7 páginas
  • Exemplo tabela hash
    596 palavras | 3 páginas
  • Exercícios com tabela hash
    306 palavras | 2 páginas