TabelaHash
13:07
Acesso a um registro em um arquivo sequencial todos os registros
são percorridos desde o início até que se encontre o registro desejado?
Acesso Serial
• Consiste na obtenção do registro que segue ao último acessado, na sequência
ditada pela chave de ordenação.
Acesso Aleatório
• Caracteriza-se por ser a indicação do registro desejado feita pela especificação
de um argumento de pesquisa. Neste caso a sequência na qual os registros
são acessados não mantém necessariamente a relação com a ordenação física
do arquivo. Estrutura de Dados: Tabela Hash
TabelaHash
13:15
Busca
Muitos métodos de busca funcionam segundo o mesmo princípio: procurar a informação
desejada com base na comparação de suas chaves, isto ´´e, com base em algum valor que a
compõe
Problema
Algoritmos eficientes exigem que os elementos sejam armazenados de forma ordenada
Custo da ordenação no melhor caso: 𝑂(𝑛 𝑙𝑜𝑔 𝑛)
Custo da busca: 𝑂(log 𝑛)
Busca Ideal
Acesso direto ao elemento, sem nenhuma etapa de comparação de chaves: custo 𝑂(1)
Estrutura de Dados: Tabela Hash
TabelaHash
13:15
Arrays
Estruturas que utilizam índices para armazenar informações
Permite acessar uma determinada posição do array com custo 𝑂(1)
Problema
Arrays não possuem nenhum mecanismo que permita calcular a posição onde
uma informação está armazenada, de modo que a operação de busca em um
array não é 𝑂(1)
Solução
Usar tabela hash
Estrutura de Dados: Tabela Hash
TabelaHash
13:15
Tabela de espalhamento
Também conhecida como tabelas de indexação
É uma generalização da ideia de array
Utiliza uma função para espalhar os elementos que queremos armazenar na
tabela
O espalhamento faz com que os elementos fiquem dispersos de forma não
ordenada dentro do array que define a tabela
Função de Hashing
Função que espalha os elementos na tabela
Estrutura de Dados: Tabela Hash
Porqueespalharos elementosmelhoraa busca?
13:15
Uma tabela hash permite a associação de valorese chaves
Chave
Parte da informação que compõe o elemento a ser inserido ou buscado na tabela
Valor
É a posição (índice) onde o elemento se encontra no array que define a tabela
Assim, a partir de uma chave podemos acessar de forma rápida uma
determinada posição do array
Na média, essa operação tem custo 𝑂(1)
Estrutura de Dados: Tabela Hash
TabelaHash
13:15
Vantagens
Alta eficiência na operação de busca
Tempo de busca é praticamente independente do número de chaves
armazenadas na tabela
Implementação simples
Desvantagens
Alto custo para recuperar os elementos da tabela ordenados pela chave. Nesse
caso, é preciso ordenar a tabela
Pior caso é 𝑂(𝑛), sendo 𝑛 o tamanho da tabela: alto número de colisões
Estrutura de Dados: Tabela Hash
TabelaHash:Aplicações
13:15
Busca de elementos em base de dados
Criptografia: MD5 e família SHA (Secure Hash Algorithm)
Implementação da tabela de símbolos dos compiladores
Armazenamento de senhas com segurança: a senha não é
armazenada no servidor, mas sim o resultado da função hash
Verificação de integridade de dados e autenticação de
mensagens
Estrutura de Dados: Tabela Hash