Estrutura de Dados Apoio (Tabela Hash)
-
Upload
leinylson-fontinele -
Category
Education
-
view
53 -
download
0
Transcript of Estrutura de Dados Apoio (Tabela Hash)
Tabela Hash
13:07
Acesso a um registro em um arquivo sequencial todos os registrossã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ênciaditada pela chave de ordenação.
Acesso Aleatório
• Caracteriza-se por ser a indicação do registro desejado feita pela especificaçãode um argumento de pesquisa. Neste caso a sequência na qual os registrossão acessados não mantém necessariamente a relação com a ordenação físicado arquivo. Estrutura de Dados: Tabela Hash
Tabela Hash
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 acompõ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
Tabela Hash
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 ondeuma informação está armazenada, de modo que a operação de busca em umarray não é 𝑂(1)
Solução
Usar tabela hashEstrutura de Dados: Tabela Hash
Tabela Hash
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 natabela
O espalhamento faz com que os elementos fiquem dispersos de forma nãoordenada dentro do array que define a tabela
Função de Hashing
Função que espalha os elementos na tabelaEstrutura de Dados: Tabela Hash
Porque espalhar os elementos melhora a busca?
13:15
Uma tabela hash permite a associação de valores e 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 umadeterminada posição do array
Na média, essa operação tem custo𝑂(1)Estrutura de Dados: Tabela Hash
Tabela Hash
13:15
Vantagens Alta eficiência na operação de busca
Tempo de busca é praticamente independente do número de chavesarmazenadas na tabela
Implementação simples
Desvantagens
Alto custo para recuperar os elementos da tabela ordenados pela chave. Nessecaso, é preciso ordenar a tabela
Pior caso é 𝑂(𝑛), sendo𝑛 o tamanho da tabela: alto número de colisõesEstrutura de Dados: Tabela Hash
Tabela Hash: 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 demensagens
Estrutura de Dados: Tabela Hash
Material: https://sites.google.com/site/leinylsonnassau
13:15
Material baseado nas aulas de:
Prof. Dr. André R. Backes.
Estrutura de Dados: Tabela Hash