Estrutura de Dados Apoio (Tabela Hash)

19
# Estrutura de Dados # Tabela Hash Prof. Leinylson Fontinele Pereira

Transcript of Estrutura de Dados Apoio (Tabela Hash)

# Estrutura de Dados #Tabela Hash

Prof. Leinylson Fontinele Pereira

Introdução

13:07 2 Estrutura de Dados: Tabela Hash

O que vamos aprender?

Tabela Hash

13:07 Estrutura de Dados: Tabela Hash

Vamos começar?

13:07 4 Estrutura de Dados: 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

Tabela Hash

13:15Estrutura de Dados: Tabela Hash

Tabela Hash

13:15Estrutura de Dados: Tabela Hash

13:15

Porque espalhar os elementos melhora a busca?

Estrutura 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:15Estrutura 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

Concluindo...

13:15 16 Estrutura de Dados: Tabela Hash

Nesta aula aprendemos... Tabela Hash

13:07 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

Alguma Dúvida?

13:15

Até a próxima aula...

[email protected]