Tabela Hash
Hashing
Livro “Projeto de Algoritmos” – Nívio Ziviani
Capítulo 5 – Seções 5.5 http://www2.dcc.ufmg.br/livros/algoritmos/ Transformação de Chave (Hashing)
Os registros armazenados em uma tabela são diretamente endereçados a partir de uma transformação aritmética sobre a chave de pesquisa.
Hash significa (Webster’s New World Dictionary)
• Fazer picadinho de carne e vegetais para cozinhar.
• Fazer uma bagunça.
Algoritmos e Estrutura de Dados II
Transformação de Chave (Hashing)
“Hash”, em computação, tem outros significados e outros usos
Em criptografia: hash é o resultado de algoritmos de dispersão, que produzem um código binário a partir de um arquivo
MD5 (Rivest (RSA), 1992): 128 bits
Usado para verificar a integridade do arquivo após transmissão, combinado com alguma forma de checksum
Twitter: “hashtag” é uma marca que permite ao
Twitter acompanhar as tendências nas discussões e assuntos relevantes
Ex.: (2009) #forasarney, #classicmoviequotes
Significado geral: transformar algo grande em algo pequeno
Algoritmos e Estrutura de Dados II
Transformação de Chave (Hashing)
Um método de pesquisa com o uso da transformação de chave é constituído de duas etapas principais:
1 - Computar o valor da função de transformação, a qual transforma a chave de pesquisa em um endereço da tabela.
2 - Considerando que duas ou mais chaves podem ser transformadas em um mesmo endereço de tabela, é necessário existir um método para lidar com colisões.
Algoritmos e Estrutura de Dados II
Transformação de Chave (Hashing)
Qualquer que seja a função de transformação, algumas colisões irão ocorrer fatalmente, e tais colisões têm de ser resolvidas de alguma forma.
Mesmo que se obtenha uma função de transformação que distribua os registros de forma uniforme entre as entradas da tabela, existe uma alta probabilidade de haver colisões.
Algoritmos e Estrutura de Dados II
Transformação de Chave (Hashing)