TABELAS DE DISPERSÃO/HASH
|
|
- Kevin Caiado
- 5 Há anos
- Visualizações:
Transcrição
1 1/47 TABELAS DE DISPERSÃO/HASH
2 Introdução 2/47 Introdução Motivação - Considerar o problema de pesquisar um determinado valor num vetor: - Se o vetor não está ordenado, a pesquisa requer O(n) de complexidade - Se o vetor está ordenado, pode-se fazer a pesquisa binária que requer uma complexidade de O(log n) - Parece não haver melhor maneira de resolver o problema com custos melhorados Ideia - Poderia haver maneira de resolver o problema em O(1), se o vetor estiver organizado de uma determinada forma
3 Introdução 3/47 Solução - Arranjar uma função mágica que, dado um determinado valor a pesquisar, nos diga exatamente a posição exata no vetor - Esta função é chamada função de dispersão (hash) Exemplo - Uma máquina produz por dia entre 0 e 5 peças de um determinado produto - Registar o número de peças produzidas ao longo de 1 ano - Pretende-se saber, por exemplo, em quantos dias se produziu k peças daquele produto, com k = 0,, 5
4 Introdução 4/47 Exemplo Solução 1 - Definir um vetor com índices de 0 a 365 e guardar no índice k-1 o número de peças produzidas no dia k Determinar o número de dias em que se produziu p peças: - implica percorrer todo o vetor e pesquisar o valor p naquele vetor, no sentido de contar o número de vezes que aparece o valor p - Ordem de complexidade: - O(n), n = tamanho do vetor
5 Introdução 5/47 Exemplo Solução 2 - Definir um vetor V com índices de 0 a 5 e guardar no índice k o número de dias que produziu-se k peças, com k = 0,, 5 Ou seja, se num dado dia produziu-se p peças, então o valor V[p] é incrementado em 1 valor: V[p] = V[p] Para determinar o número de dias em que se produziu p peças: - basta pegar no valor contido no índice p do vetor V, V[p], que contém o número de vezes/dias que foram produzidas p peças - Ordem de complexidade: - O(1)
6 Introdução 6/47 Complexidade ideal O(1) - Vetor A i com i = 1,, (16 bits) inicializado a zeros - Cada inserção de um número k seria: A k = A k Cada remoção de um número k seria: A k = A k A k representa o número de vezes que o número k foi inserido - Para procurar temos que fazer pesquisar(k): se A k > 0 então está encontrado
7 Introdução 7/47 Problemas encontrados - Tamanho do vetor - com inteiros de 16 bits é um vetor com 65535, - com inteiros de 32 bits é um vetor com , o que é incomportável - O uso de strings - Se tivermos strings em vez de inteiros não é possível indexar num vetor, porque A 'Ana' não existe Resolução do problema dos vetores grandes - Usar uma função que mapeie grandes números ou strings transformados em números mais pequenos ou manejáveis - Esta função é chamada de Hash ou dispersão
8 8/47 Definição - É um tipo de estruturação criado para o armazenamento de informação, sendo - uma forma extremamente simples, - fácil de se implementar e, - intuitiva para se organizar grandes quantidades de dados Possui como ideia central - a divisão do universo dos dados a ser organizado em subconjuntos mais fáceis de serem manipulados A estruturação da informação em tabelas de hash visa - permitir armazenar de grande quantidade de dados, e - pesquisar rapidamente em grande quantidade de dados
9 9/47 As tabelas de hash são constituídas por 2 conceitos fundamentais - Tabela de hash: - estrutura que permite o acesso aos subconjuntos - Função de hash: - função que realiza um mapeamento entre - os valores das chaves (dados a organizar) e - as entradas (posições) na tabela
10 Propriedades da 10/47 Propriedades da Criar um critério simples para - Dividir o universo dos dados a organizar em subconjuntos com base em alguma qualidade (critério) do domínio das chaves: - possuir um índice que permita encontrar o início do subconjunto certo, depois de calcular o valor de hash - isto é a Tabela de hash Saber em qual subconjunto procurar e colocar uma chave - Indicar quantos subconjuntos se pretende; - Criar uma regra de cálculo que, dada uma chave, determine em que subconjunto se deve - procurar pelos dados com esta chave, ou - inserir este dado (caso seja um novo elemento) - Isto é chamado de Função de hash
11 Propriedades da 11/47 Gerir estes subconjuntos bem menores com um método simples - Possuir uma estrutura ou um conjunto de estruturas de dados para os subconjuntos - Existem duas filosofias: - hashing fechado (ou de endereçamento aberto), ou - hashing aberto (ou encadeado) Alguns problemas que se colocam quando se usa tabelas de hash - determinar uma função de hash que minimize o número de colisões; - obter os mecanismos eficientes para tratar as colisões
12 Função de Hash 12/47 Função de Hash Objetivos da função de Hash - ser eficiente - distribuir todos os elementos de forma uniforme pelas posições da tabela Exemplo - Números inteiros x (chave) de 0 a 99 (dois dígitos) - tam = 10 (tamanho da tabela) - Pode-se construir uma função que coloque x no vetor em termos do algarismo das dezenas (tam = 10): - função matemática: h(x) = x / tam (/ = divisão inteira) - Pode-se também construir uma função que coloque x no vetor em termos do algarismo das unidades (tam = 10): - função matemática: h(x) = x % tam (% = resto da divisão inteira)
13 Função de Hash 13/47 Colisões - Quando a Função de hash é imperfeita poderão existir dois valores a serem colocados na mesma posição do vetor - isto chama-se uma colisão - As colisões são normalmente tratadas como quem chega primeiro serve-se: - o primeiro elemento a chegar a uma posição fica com ela - Terá de se arranjar uma solução eficiente para determinar o que se fazer com o segundo valor que deveria ser colocado na mesma posição - O que fazer quando dois valores diferentes tentam ocupar a mesma posição? - Hashing fechado ou endereçamento aberto: - procura a partir dessa posição uma posição vazia - usar uma segunda função de hash, uma terceira, - Hashing aberto ou encadeamento separado: - usa a posição do vetor como cabeça de uma lista que vai conter todas as colisões dessa posição
14 14/47 Fator de ocupação l - Definição: λ = n / tam, em que - n = número de elementos inseridos na tabela - tam = tamanho da tabela - Observação: λ deve ser inferior a 1
15 Hashing fechado 15/47 Hashing fechado Exemplo 1 - Função de Hash: hash(x) = x % Pretende-se adicionar 196 à tabela de Hash
16 Hashing fechado 16/47 Exemplo 1 (cont) - Função de Hash: hash(x) = x % Pretende-se adicionar 196 à tabela de Hash hash(196) = (196 % 100) = 96 - Tabela(96) está ocupada - Tabela(96) =
17 Hashing fechado 17/47 Exemplo 1 (cont) - Função de Hash: hash(x) = x % Pretende-se adicionar 196 à tabela de Hash - hash(196) = (196 % 100) = 96 - Tabela(96) está ocupada - Tabela(96) = Tabela(96+1) está ocupada - Tabela(97) =
18 Hashing fechado 18/47 Exemplo 1 (cont) - Função de Hash: hash(x) = x % Pretende-se adicionar 196 à tabela de Hash - hash(196) = (196 % 100) = 96 - Tabela(96) está ocupada - Tabela(96) = Tabela(96+1) está ocupada - Tabela(97) = Tabela(96+2) está vazia - Então, colocar 196 na posição 98: Tabela(98) =
19 Hashing fechado 19/47 Exemplo 1 (cont) - Função de Hash: hash(x) = x % Pretende-se adicionar 196 à tabela de Hash - hash(196) = (196 % 100) = 96 - Tabela(96) está ocupada - Tabela(96) = Tabela(96+1) está ocupada - Tabela(97) = Tabela(96+2) está vazia - Então, colocar 196 na posição 98: Tabela(98) = Foi utilizada a sondagem linear
20 Hashing fechado 20/47 Exemplo 2 - Função de Hash: hash(x) = x % Pretende-se adicionar 397 à tabela de Hash
21 Hashing fechado 21/47 Exemplo 2 (cont) - Função de Hash: hash(x) = x % Pretende-se adicionar 397 à tabela de Hash hash(397) = (397 % 100) = 97 - Tabela(97) está ocupada - Tabela(97) = 397 = Então, não inserir 397 na tabela, pois já existe
22 Hashing fechado 22/47 Exemplo 3 - Função de Hash: hash(x) = x % Pretende-se adicionar 598 à tabela de Hash
23 Hashing fechado 23/47 Exemplo 3 (cont) - Função de Hash: hash(x) = x % Pretende-se adicionar 598 à tabela de Hash hash(598) = (598 % 100) = 98 - Tabela(98) está ocupada - Tabela(98) =
24 Hashing fechado 24/47 Exemplo 3 (cont) - Função de Hash: hash(x) = x % Pretende-se adicionar 598 à tabela de Hash - hash(598) = (598 % 100) = 98 - Tabela(98) está ocupada - Tabela(98) = Tabela(98+1) está ocupada - Tabela(99) = A posição 99 é a última posição e está ocupada
25 Hashing fechado 25/47 Exemplo 3 (cont) - Função de Hash: hash(x) = x % Pretende-se adicionar 598 à tabela de Hash - hash(598) = (598 % 100) = 98 - Tabela(98) está ocupada - Tabela(98) = Tabela(98+1) está ocupada - Tabela(99) = A posição 99 é a última posição e está ocupada - Solução: - Tratar a tabela como circular: a posição seguinte da 99 é a posição 0 - Assim, 598 vai para a posição 0: Tabela(0) =
26 Hashing fechado 26/47 Problemas da sondagem linear - Existência de blocos contíguos de posições ocupadas com grandes dimensões (em geral quando λ > 05) Clusters - Quanto maiores ficam os blocos, mais tendência têm para crescer - A sondagem é igual para elementos que colidem
27 Hashing fechado 27/47 Exemplo 1 - Função de Hash: hash(x) = x % Pretende-se adicionar 293 à tabela de Hash
28 Hashing fechado 28/47 Exemplo 1 (cont) - Função de Hash: hash(x) = x % Pretende-se adicionar 293 à tabela de Hash - hash(293) = (293 % 100) = 93 - Tabela(93) =
29 Hashing fechado 29/47 Exemplo 1 (cont) - Função de Hash: hash(x) = x % Pretende-se adicionar 293 à tabela de Hash - hash(299) = (293 % 100) = 93 - Tabela(93) = Tabela( ) está ocupada - Tabela(94) =
30 Hashing fechado 30/47 Exemplo 1 (cont) - Função de Hash: hash(x) = x % Pretende-se adicionar 293 à tabela de Hash - hash(299) = (293 % 100) = 93 - Tabela(93) = Tabela( ) está ocupada - Tabela(94) = Tabela( ) está vazia - Então colocar 293 na posição 97: Tabela(97) =
31 Hashing fechado 31/47 Exemplo 1 (cont) - Função de Hash: hash(x) = x % Pretende-se adicionar 293 à tabela de Hash - hash(299) = (293 % 100) = 93 - Tabela(93) = Tabela( ) está ocupada - Tabela(94) = Tabela( ) está vazia - Então colocar 293 na posição 97: Tabela(97) = Foi utilizada a sondagem quadrática
32 Hashing fechado 32/47 Problemas da sondagem quadrática - Cada sondagem tenta uma nova posição - Se o tamanho da tabela for, por exemplo, 16 (tam = 16), então atinge-se sempre as posições 1, 2, 4 e 9; - entra-se num ciclo infinito Resolução do problema - tam tem de ser número primo - é conveniente o fator λ ser menor ou igual a 05 (λ = n / dim 05) - ao atingir-se λ = 05 - pode-se aumentar a tabela para um número primo superior e, de seguida - passar os valores da tabela atual para a nova aplicando de novo a função de hash - A este método dá-se o nome de rehash
33 Hashing fechado 33/47 Pesquisa - Função de Hash: hash(x) = x % 10 - Construção da tabela usando a sondagem linear: - hash(12) = 12 % 10 = 2 - hash(23) = 23 % 10 = 3 - hash(39) = 39 % 10 = 9 - hash(10) = 10 % 10 = 0 - hash(16) = 16 % 10 = 6 - hash(32) = 32 % 10 = 2 (colisão com 12) - Tabela(2) = Tabela(2+1) = Tabela(2+2) está vazia Colocar 32 na posição 4: Tabela(4) =
34 Hashing fechado 34/47 Pesquisa (cont) - Função de Hash: hash(x) = x % 10 - Pesquisar o elemento 32: - hash(32) = 32 % 10 = 2 - Tabela(2) = (continuar pesquisa) - Tabela(2+1) = (continuar pesquisa) - Tabela(2+2) = 32 = 32 (terminar pesquisa) O elemento 32 está na tabela
35 Hashing fechado 35/47 Pesquisa (cont) - Função de Hash: hash(x) = x % 10 - Pesquisar o elemento 22: - hash(22) = 12 % 10 = 2 - Tabela(2) = (continuar pesquisa) - Tabela(2+1) = (continuar pesquisa) - Tabela(2+2) = (continuar pesquisa) - Tabela(2+3) = vazia (terminar pesquisa) O elemento 22 não está na tabela
36 Hashing fechado 36/47 Problema da remoção (cont) - Função de Hash: hash(x) = x % 10 - Remover o elemento 12: - hash(12) = 12 % 10 = 2 - Tabela(2) = 12 =
37 Hashing fechado 37/47 Problema da remoção (cont) - Função de Hash: hash(x) = x % 10 - Remover o elemento 12: - hash(12) = 12 % 10 = 2 - Tabela(2) = 12 = 12 - A posição 2 fica vazia: Tabela(2) = vazia
38 Hashing fechado 38/47 Problema da remoção (cont) - Função de Hash: hash(x) = x % 10 - Pesquisar o elemento 32: - hash(32) = 32 % 10 = 2 - A posição 2 está vazia: Tabela(2) = nada - Conclusão: 32 não está na Tabela - Conclusão errada: - o elemento 32 está na posição 4: Tabela(4) =
39 Hashing fechado 39/47 Resolução do problema da remoção - Criar uma estrutura que assinale cada posição: - Livre (vazia e nunca ocupada) - Ocupada - Removida (vazia mas já ocupada) - Pesquisar/Remover - Termina quando encontrar o objeto - Termina quando encontrar uma posição Livre - Continua quando encontrar uma posição Removida - Inserir - Insere o objeto quando encontrar uma posição Livre ou Removida
40 Hashing aberto 40/47 Hashing aberto Conceitos gerais - A estruturação dos dados é talvez a forma mais intuitiva de se implementar o conceito de Hashing - Consiste em ter um vetor de apontadores, com dimensão N, em que cada elemento do vetor contém uma ligação para uma lista dos elementos a guardar A pesquisa de um elemento efetua-se da seguinte forma: - calcular, a partir de uma chave, qual o elemento do vetor é a cabeça da lista que se pretende; - pesquisar o elemento naquela lista, usando um qualquer algoritmo para o efeito
41 Hashing aberto 41/47 Exemplo 1 - Armazenar os elementos: 19, 26, 33, 70, 79, 103 e Função de hash: hash(x) = x % 10 - Construir a respetiva Tabela de hash - Os valores da função de hash para aqueles elementos são os seguintes: - hash(19) = 9 - hash(26) = 6 - hash(33) = 3 - hash(70) = 0 - hash(79) = 9 - hash(103) = 3 - hash(110) = 0
42 Hashing aberto 42/47 Exemplo 1 (cont) - A Tabela de hash é a seguinte:
43 Hashing aberto 43/47 Exemplo 2 - Cada elemento do vetor é um apontador para uma lista de estruturas com o mesmo valor da função de hash - Considere-se que - a tabela (vetor) tem tamanho 13 (tam = 13) e - a função de hash é a que consta na tabela que se segue Chave A,B C,D E,F G,H I,J K,L M,N O,P Q,R S,T U,V X,Y W,Z hash Calcular os valores de hash para as seguintes chaves: Alce, Burro, Gato, Hiena, Pato, Sapo, Zebra, Vaca e Tigre
44 Hashing aberto 44/47 Exemplo 2 (cont) - A tabela de hash é a seguinte: Burro Gato Pato Tigre Vaca Zebra Alce Hiena Sapo
45 Hashing aberto 45/47 Propriedades - Reduz o número de comparações, quando comparado com a pesquisa sequencial - Necessidade de espaço em memória para armazenar o vetor de listas
46 Hashing (aberto e fechado) 46/47 Hashing (aberto e fechado) Hashing aberto - suporta a operação básica de remoção, - as listas de colisão não se cruzam, - o erro por defeito do pré-dimensionamento não é tão grave Hashing fechado - se a tabela estiver num ficheiro poupam-se muitos acessos com a sondagem linear, porque em geral os elementos que colidem estão fisicamente próximos
47 Hashing (aberto e fechado) 47/47 Vantagens do Hashing - No Hashing aberto, - a complexidade das operações básicas (pesquisa, inserção e remoção) é constante (O(n) = 1), no caso esperado - No Hashing fechado, - a técnica é eficiente e só depende - do fator de ocupação e - da qualidade das funções de hash Desvantagens do Hashing - Não é uma estrutura dinâmica (o redimensionamento é necessário) - Não suporta operações básicas que se baseiam em relações de ordem dos elementos (mínimo, máximo, percurso ordenado, ) - No Hashing aberto a complexidade das operações básicas (pesquisa, inserção e remoção) é linear em relação ao número de elementos da tabela, no pior caso
Algoritmos de pesquisa. Tabelas de dispersão/hash
Algoritmos de pesquisa Tabelas de dispersão/hash Introdução Motivação: Considerar o problema de pesquisar um determinado valor num vetor. Se o vetor não está ordenado, a pesquisa requer O(n) de complexidade.
Leia maisAlgoritmos de pesquisa. Tabelas de dispersão/hash
Algoritmos de pesquisa Tabelas de dispersão/hash Introdução Motivação: Considerar o problema de pesquisar um determinado valor num vetor (array). Se o vetor não está ordenado, a pesquisa requer O(n) de
Leia maisTabelas Hash. informação, a partir do conhecimento de sua chave. Hashing é uma maneira de organizar dados que:
Tabelas Hash Tabelas Hash O uso de listas ou árvores para organizar informações é interessante e produz bons resultados. Porem, em nenhuma dessas estruturas se obtém o acesso direto a alguma informação,
Leia maisDicionários. TAD Orientado a conteúdo
Dicionários TAD Orientado a conteúdo Dicionários efinição: Tipo abstrato de dados orientado a onteúdo. Contrasta com as PILHAs e FILAs que são orientadas a posição. perações implementadas: Inserir(d,x)
Leia maisTabelas de dispersão/hash
Tabelas de dispersão/hash 1 Tabelas de dispersão/hash 1. Considere uma tabela de hash de tamanho m = 1000 e a função de hash h(k)= [m.(k.a % 1)], com A=( 5-1)/2. Calcule os valores de hash das chaves 61,
Leia maisTABELA HASH. Prof. André Backes. Princípio de funcionamento dos métodos de busca
TABELA HASH Prof. André Backes Problema 2 Princípio de funcionamento dos métodos de busca Procurar a informação desejada com base na comparação de suas chaves, isto é com base em algum valor que a compõe
Leia maisMatemática Discreta 12
Universidade Federal do Vale do São Francisco Curso de Engenharia da Computação Matemática Discreta 12 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br - www.univasf.edu.br/~jorge.cavalcanti 1 Introdução
Leia maisTabela Hash. Disciplina de Algoritmos e Estrutura de Dados III. Prof. Marcos Antonio Schreiner 15/05/2015
Tabela Hash Disciplina de Algoritmos e Estrutura de Dados III Prof. Marcos Antonio Schreiner 15/05/2015 Introdução Seja um conjunto de chaves armazenadas em um vetor e em uma árvore AVL. Qual a complexidade
Leia maisHashing: conceitos. Hashing
Hashing: conceitos hashing é uma técnica conhecida como espalhamento, mapeamento ou randomização que tenta distribuir dados em posições aleatórias de uma tabela (array) associa cada objeto (de um determinado
Leia maisHASHING HASHING 6/10/2008
Hashing é uma técnica que busca realizar as operações de inserção, remoção e busca em tempo constante. Motivação - Acesso Direto: Suponha que existam n chaves a serem armazenadas em uma tabela T, seqüencial
Leia maisi a[i]
Técnicas de Hashing Outra forma de se fazer busca em uma tabela, é construir-se a tabela de forma a facilitar a busca, colocando-se cada elemento numa posição pré-determinada. Tal posição é obtida aplicando-se
Leia maisMétodos de Busca Parte 2
Métodos de Busca Parte 2 SCC-214 Projeto de Algoritmos Prof. Thiago A. S. Pardo Baseado no material do Prof. Rudinei Goularte 1 Introdução Acesso seqüencial = O(n) Quanto mais as estruturas (tabelas, arquivos,
Leia maisSCC0601 Introdução à Ciência da Computação II. Prof. Lucas Antiqueira
SCC0601 Introdução à Ciência da Computação II Prof. Lucas Antiqueira Acesso sequencial = O(n) Busca binária = O(log 2 n) Árvores binárias de busca = O(log 2 n) (melhor caso) Acesso em tempo constante Por
Leia maisTabelas de hash Acabamos de estudar como implementar uma tabela hashing aberta e estudaremos agora como implementar uma tabela hashing fechada ou
Tabelas de hash Acabamos de estudar como implementar uma tabela hashing aberta e estudaremos agora como implementar uma tabela hashing fechada ou também denominada de tabela hashing com endereçamento aberto.
Leia maisA inserção da chave 6 da árvore acima resulta na árvore abaixo.
149 Árvores B+ As operações nas árvores B+ não são muito diferentes das operações das árvores B. Inserir uma chave em uma folha que ainda tenha algum espaço exige que se coloque as chaves desta folha em
Leia maisÁrvores B. Hashing. Estrutura de Dados II Jairo Francisco de Souza
Árvores B Hashing Estrutura de Dados II Jairo Francisco de Souza Resolução de colisões Endereçamento aberto Re-hashing Encadeamento Separado Coalescido Coalescido com porão Endereçamento em balde Endereçamento
Leia maisHASHING Hashing Motivação - Acesso Direto:
Hashing é uma técnica que busca realizar as operações de inserção, remoção e busca em tempo constante. Motivação - Acesso Direto: Suponha que existam n chaves a serem armazenadas em uma tabela T, seqüencial
Leia maisAs Listas são simples de se implementar, mas, com um tempo médio de acesso T = n/2, tornando-se impraticáveis para grandes quantidades de dados.
Tabelas de hash Considerações iniciais: Até o momento foram estudados basicamente dois tipos de estruturas de dados para o armazenamento flexível de dados: Listas; Árvores. Como vimos, cada um desses grupos
Leia maisComplexidade de Algoritmos
Complexidade de Algoritmos Prof. Diego Buchinger diego.buchinger@outlook.com diego.buchinger@udesc.br Prof. Cristiano Damiani Vasconcellos cristiano.vasconcellos@udesc.br Análise de complexidade de Estruturas
Leia maisTAD dicionário. Métodos do TAD dicionário:
TAD dicionário O TAD dicionário modela uma coleção buscável de itens chave-elemento As principais operações em dicionários são busca, inserção e remoção de itens Vários itens com a mesma chave são permitidos
Leia maisUNIVERSIDADE DA BEIRA INTERIOR
UNIVERSIDADE DA BEIRA INTERIOR Programação II 1º Semestre Frequência 2 Resolução 07/01/2019 1. [1,25 val] - Análise de Complexidade dos Algoritmos Considere o seguinte bloco de código em linguagem C: for
Leia maisMétodos de Busca. Parte 2. ICC2 Prof. Thiago A. S. Pardo. Baseado no material do Prof. Rudinei Goularte
Métodos de Busca Parte 2 ICC2 Prof. Thiago A. S. Pardo Baseado no material do Prof. Rudinei Goularte Introdução Acesso seqüencial = O(n) Quanto mais as estruturas (tabelas, arquivos, etc.) crescem, mais
Leia maisIntrodução Métodos de Busca Parte 2 - Hashing
Introdução Métodos de Busca Parte - Hashing ICC Acesso seqüencial = O(n) Quanto mais as estruturas (tabelas, arquivos, etc.) crescem, mais acessos há Quando armazenamento é em disco, reduzir acessos é
Leia maisDicionários. Prof. César Melo
Dicionários Prof. César Melo Definição Estruturas que permitem a recuperação da informação a partir do seu valor; Contrasta com filas e pilhas que é posicional; Três operações: Inserção(k, d), chave k;
Leia maisHashing (Tabela de Dispersão)
Hashing (Tabela de Dispersão) Prof. Marcos Alves 2009-B Roteiro Contextualização Conceitos Básicos Hashing (método de pesquisa) Hashing Perfeito Hashing Imperfeito Colisões Métodos de Tratamento de Colisões
Leia maisEdital de Seleção 024/2017 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões
Edital de Seleção 024/2017 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: «Nome» INSCRIÇÃO: «Inscrição» Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome
Leia maisTabelas Hash. Prof. Túlio Toffolo BCC202 Aulas 23 e 24 Algoritmos e Estruturas de Dados I
Tabelas Hash Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Aulas 23 e 24 Algoritmos e Estruturas de Dados I Pesquisa em Memória Primária Introdução - Conceitos Básicos Pesquisa Sequencial Pesquisa
Leia maisTabelas de Hash MBB. Novembro de Algoritmos e Complexidade LEI-LCC
Tabelas de Hash Algoritmos e Complexidade LEI-LCC 2010-2011 MBB Novembro de 2010 Tabelas e Acesso a Informação As estruturas de dados apresentadas anteriormente têm como objectivo o armazenamento de informação,
Leia maisMC3305 Algoritmos e Estruturas de Dados II. Aula 02 Hashing. Prof. Jesús P. Mena-Chalco.
MC3305 Algoritmos e Estruturas de Dados II Aula 02 Hashing Prof. Jesús P. Mena-Chalco jesus.mena@ufabc.edu.br 2Q-2015 1 Sobre a busca de dados/chaves 2 Busca em tabelas (vetores/arrays) Para se resolver
Leia maisEstruturas de Dados Tabelas de Espalhamento
Estruturas de Dados Tabelas de Espalhamento Prof. Eduardo Alchieri (introdução) Uma estrutura como, as árvores binárias de busca, que trabalhe na ordem de log n é muito eficiente, mas em algumas situações
Leia maisImplemente a função de remoção de uma chave na tabela hashing fechada em questão. void remover(tabela tabela, int n) {
Implemente a função de remoção de uma chave na tabela hashing fechada em questão. void remover(tabela tabela, int n) { } Tabelas de hash fechada: Exercício int posicao = buscar(tabela, n); if (posicao
Leia maisTabelas de Dispersão. Estrutura de Dados e Algoritmos
Tabelas de Dispersão Tabelas de Dispersão Sumário Definição. Características. Resolução de colisões: dispersão com listas e dispersão aberta. Teste quadrático. Desempenho de tabelas de dispersão. Interface
Leia maisTabelas Hash O Que é uma Tabela Hash? O Que é uma Tabela Hash? O Que é uma Tabela Hash? Inserindo um Novo Registro. O Que é uma Tabela Hash?
Tabelas Hash O Que é uma Tabela Hash? Nesta aula são discutidos modos de armazenar informações em um vetor, e depois procurar por uma informação Tabelas Hash constituem uma abordagem comum para o problema
Leia maisPesquisa em Memória Primária. Prof. Jonas Potros
Pesquisa em Memória Primária Prof. Jonas Potros Transformação de Chave (Hashing) transformação de chave difere-se dos métodos anteriores, porque os registros são armazenados em uma tabela e são diretamente
Leia maisHashing Organização Direta de Arquivos
Hashing Organização Direta de Arquivos Estrutura de Dados II Aula 08 UFS - DComp Adaptados a partir do material da Profa. Kenia Kodel Cox Arquivos Diretos Os principais métodos de organização e acesso
Leia maisHashing Externo. SCC-503 Algoritmos e Estruturas de Dados II. Thiago A. S. Pardo M.C.F. de Oliveira Cristina Ciferri
Hashing Externo SCC-503 Algoritmos e Estruturas de Dados II Thiago A. S. Pardo M.C.F. de Oliveira Cristina Ciferri 1 Hashing 0 1 chave de busca K = LOWELL 2 h(k) endereço 4 (RRN 4) 3 4 5... LOWELL......
Leia maisMétodos de Busca Parte 1
Métodos de Busca Parte 1 Introdução à Ciência da Computação II Prof. Diego Raphael Amancio Baseado no material do Prof. Rudinei Goularte e do Prof. Thiago A. S. Pardo Introdução Importância em estudar
Leia maisUNIVERSIDADE DA BEIRA INTERIOR
UNIVERSIDADE DA BEIRA INTERIOR Programação II 2º Semestre Frequência 2 (8 valores) Resolução 30/05/2018 A. Análise de complexidade dos algoritmos 1. (0.75 val) Considere a seguinte função em C: void funcao
Leia maisLista de Exercícios 07 Introdução à Ciência de Computação II (SCC0201/501)
Lista de Exercícios 07 Introdução à Ciência de Computação II (SCC0201/501) Prof. Moacir P. Ponti Jr. 24 de novembro de 2010 1 Hashing 1. Suponha uma tabela hash de tamanho 10 com endereçamento aberto para
Leia maisESTRUTURA DE DADOS E ALGORITMOS. Hashing (Tabela de Dispersão) Cristina Boeres
ESTRUTURA DE DADOS E ALGORITMOS Hashing (Tabela de Dispersão) Cristina Boeres Motivação! Os métodos de pesquisa vistos até agora buscam informações armazenadas com base na comparação de suas chaves! Para
Leia maisO acesso aos elementos é aleatório, isto é, qualquer elemento numa colecção pode ser acedido realizando uma pesquisa pela chave.
DICIONÁRIOS São assim designadas as colecções de elementos em que cada elemento tem um campo chamado chave e não existem valores de chaves repetidos. As operações características que permitem a sua manipulação
Leia maisTransformação de Chave. (Hashing)
UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA Transformação de Chave (Hashing) e Gomes da Costa yandre@din.uem.br 1 Transformações de Chave, ou Tabela Hash, ou Tabelas de Dispersão; Hashing
Leia maisUNIVERSIDADE DA BEIRA INTERIOR
UNIVERSIDADE DA BEIRA INTERIOR Programação II 2º Semestre Exame Época Norma (15 val) Resolução 22/06/2018 1 [1,00 val + 1,00 val] - Memória Dinâmica Considere as seguintes declarações de variáveis: int
Leia maisUniversidade de São Paulo
Universidade de São Paulo Instituto de Ciências Matemáticas e Computação SCE5763 - Tipos e Estrutura de Dados - Luis Gustavo Nonato 2 a Lista de Exercícios 1. Seja A um array de inteiros. Escreva algoritmos
Leia maisMatrizes esparsas: definição
Matrizes esparsas: definição o objetivo é mostrar os métodos de armazenamento e manipulação de matrizes esparsas esparsidade de uma matriz é a relação entre o número de elementos nulos de uma matriz e
Leia maisACH2024. Aula 22 Hashing Externo - Hashing estático e dinâmico (extensível) Prof Helton Hideraldo Bíscaro
ACH04 Aula Hashing Externo - Hashing estático e dinâmico (extensível) Prof Helton Hideraldo Bíscaro 1 Tipos de organização de arquivos Sequencial Lista ligada (com ou sem tabela de alocação) Indexada Um
Leia maisTABELAS HASH. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos
TABELAS HASH Vanessa Braganholo Estruturas de Dados e Seus Algoritmos MOTIVAÇÃO Alternativas para acelerar buscas em grandes volumes de dados: Usar um índice (ex. Árvore B, Árvore B+) Usar cálculo de endereço
Leia maisHashing. Cormen Capítulo 11
Hashing Cormen Capítulo 11 Motivação Um compilador utiliza uma tabela de símbolos para relacionar símbolos aos dados associados. Símbolos: nomes de variáveis, funções, etc.. Dados associados: localização
Leia maisEstruturas de Dados Estruturas de Dados Fundamentais
Estruturas de Dados Estruturas de Dados Fundamentais Prof. Eduardo Alchieri Estruturas de Dados Fundamentais Todos os tipos abstratos de dados (pilhas, filas, deques, etc.) podem ser implementados usando
Leia maisAlgoritmos e Estrutura de Dados. Aula 11 Estrutura de Dados: Tabelas Hash Parte II Prof. Tiago A. E. Ferreira
Algoritmos e Estrutura de Dados Aula 11 Estrutura de Dados: Tabelas Hash Parte II Prof. Tiago A. E. Ferreira Introdução Como visto na aula passada as tabelas hash: Diminuem a quantidade de endereçamento
Leia maisAED Algoritmos e Estruturas de Dados LEEC /2007. Tabelas de Dispersão
AED Algoritmos e Estruturas de Dados LEEC - 2006/2007 Tabelas de Dispersão Tabelas de Dispersão - Introdução (1) As tabelas de dispersão (hash tables) são estruturas de dados adequadas para: Tabelas de
Leia maisTransformação de Chave - Hashing
UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA Transformação de Chave (Hashing) e Gomes da Costa yandre@din.uem.br 1 Transformações de Chave, ou Tabela Hash, ou Tabelas de Dispersão; Hashing
Leia maisTabela Hash. Prof. Msc. Mariella Berger
Tabela Hash Prof. Msc. Mariella Berger http://www.inf.ufes.br/~mberger mberger@inf.ufes.br mariellaberger@gmail.com HASHING Suponha que você pudesse criar um array onde qualquer item pudesse ser localizado
Leia maisCapítulo VIII. Tipo Abstracto de Dados Dicionário. Acesso por Chave
Capítulo VIII Tipo Abstracto de Dados Dicionário Acesso por Chave Margarida Mamede, DI FCT/UNL AED, 2009/10, Capítulo VIII 1 Interface Dicionário (K,V) (1) package datastructures; public interface Dictionary
Leia maisTabelas de Dispersão - Introdução (1)
Algoritmos e Estruturas de Dados LEE 2013/14 Tabelas de Dispersão Tabelas de Dispersão - Introdução (1) As tabelas de dispersão (hash tables) são estruturas de dados adequadas para: Tabelas de símbolos
Leia maisEdital de Seleção 023/2018 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões
Edital de Seleção 023/2018 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: INSCRIÇÃO: Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome e o número da sua
Leia maisindexação e hashing Construção de Índices e Funções Hash Diego Gomes Tomé - MSc. Informática Orientador: Prof. Dr. Eduardo Almeida October 13, 2016
indexação e hashing Construção de Índices e Funções Hash Diego Gomes Tomé - MSc. Informática Orientador: Prof. Dr. Eduardo Almeida October 13, 2016 Universidade Federal do Paraná indexação e hashing Índices
Leia maisTabelas de Dispersão. Algoritmos e Estruturas de Dados Verão Cátia Vaz 1
Tabelas de Dispersão Algoritmos e Estruturas de Dados Verão 2012 1 Tabelas de endereçamento directo Endereçamento directo é usado quando o universo de chaves é pequeno e todas as chaves são distintas:
Leia maisTabelas de Dispersão. Tabela de Dispersão
Tabelas de Dispersão Sumário Definição. Características. Resolução de colisões: dispersão aberta e dispersão fechada. Teste quadrático. Desempenho de tabelas de dispersão. Interface de tabela de dispersão.
Leia maisUNIVERSIDADE DA BEIRA INTERIOR
UNIVERSIDADE DA BEIRA INTERIOR Algoritmos e Estruturas de Dados - Bioengenharia 2º Semestre Frequência Resolução 19/maio/2015 A. [3.5 val] Algoritmos de ordenação e de pesquisa Considere-se as seguintes
Leia maisEdital de Seleção 032/2016 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões
Edital de Seleção 032/2016 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: INSCRIÇÃO: Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome e o número da sua
Leia maisBases de Dados. Remoções em árvores B + Remoção em árvores B +
Bases de Dados Remoções em árvores B + Remoção em árvores B + Remoção procurar o registo e removê-lo do ficheiro se o apontador ou contentor ficar vazio, remover a entrada (valor, apontador) da folha se
Leia maisLista de Exercícios sobre Listas Implementadas por Encadeamento
Lista de Exercícios sobre Listas Implementadas por Encadeamento 1) Se você tem de escolher entre uma representação por lista encadeada ou uma representação usando posições contíguas de memória para um
Leia maisClassificação e Pesquisa de Dados. Aula 23 Organização de Arquivos: Arquivos Indexados, Diretos e Arquivos Invertidos
Classificação e Pesquisa de Dados Aula 23 Organização de Arquivos: Arquivos Indexados, Diretos e Arquivos Invertidos UFRGS INF1124 Arquivo indexado - AI Indicação de uso Baixa freqüência de acessos seqüenciais
Leia maisEdital de Seleção 055/2017 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões
Edital de Seleção 055/2017 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: INSCRIÇÃO: Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome e o número da sua
Leia maisUNIVERSIDADE DA BEIRA INTERIOR
UNIVERSIDADE DA BEIRA INTERIOR Programação II 1º Semestre Exame Época Normal (15 val) 2h + 30min 21/01/2019 1 [2,00 val = 1,00 val + 1,00 val] - Memória dinâmica Considere as seguintes declarações de variáveis:
Leia maisÁrvores B. Prof. Márcio Bueno. / Fonte: Material da Prof a Ana Eliza Lopes Moura
Árvores B Prof. Márcio Bueno ed2tarde@marciobueno.com / ed2noite@marciobueno.com Fonte: Material da Prof a Ana Eliza Lopes Moura Situação Problema Memória Principal Volátil e limitada Aplicações Grandes
Leia maisTabelas de Espalhamento (hash)
Tabelas de Espalhamento (hash) Universidade Federal do Amazonas Departamento de Eletrônica e Computação Hashing Método eficiente de busca com base em assinaturas Objetivos Conceitos Tratamento de Colisões
Leia maisVamos considerar um arquivo de dados que armazena uma lista de alunos. Cada registro é um objeto com um número de matrícula e um nome.
Tabelas de dispersão Vamos considerar um arquivo de dados que armazena uma lista de alunos. Cada registro é um objeto com um número de matrícula e um nome. A tabela está sujeita a dois tipos de operação:
Leia maisTabela Hash. Disciplina: Estruturas de Dados Professora: Camila Taumaturgo M.Sc.
Tabela Hash Disciplina: Estruturas de Dados Professora: Camila Taumaturgo email: camila.taumaturgo@ifrn.edu.br Sumário Tabela Hash Introdução Princípios de funcionamento Funções de Dispersão Tratamento
Leia maisIntrodução Métodos de Busca Parte 1
Introdução Métodos de Busca Parte 1 SCC-201 Introdução à Ciência da Computação II Rosane Minghim 2009 Importância em estudar busca Busca é uma tarefa muito comum em computação? Vários métodos e estruturas
Leia maisHashing. Prof. Josenildo Silva IFMA 2014
Hashing Prof. Josenildo Silva jcsilva@ifma.edu.br IFMA 2014 Esta versão é de 2014.11.08 2012-2014, Prof. Josenildo Silva. (jcsilva@ifma.edu.br) Estas notas de aula foram preparadas por Josenildo Silva
Leia maisTabelas Hash. Prof. Túlio Toffolo BCC202 Aula 21 Algoritmos e Estruturas de Dados I
2014-01 Aula 21 Adaptado por Reinaldo Fortes para o curso de 2014-01 Arquivo original: 24._hashing Tabelas Hash Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Aula 21 Algoritmos e Estruturas de Dados
Leia maisHashing convencional...
Hashing M.C.F. de Oliveira & Cristina Ciferri 2006/2007 Fonte: Folk & Zoelick, File Structures 1 Hashing convencional... Revisão... 2 1 Hashing 0 chave de busca K = LOWELL h(k) endereço 4 1 2 3 4 5...
Leia maisEndereçamento Aberto
Endereçamento Aberto ACH2002 - Introdução à Ciência da Computação II Delano M. Beder Escola de Artes, Ciências e Humanidades (EACH) Universidade de São Paulo dbeder@usp.br 11/2008 Material baseado em slides
Leia maisTabelas de dispersão
Tabelas de dispersão FEUP - MIEEC Programação 2-2008/2009 Tabelas de dispersão Uma tabela de dispersão é um vector de tamanho fixo em que os elementos são colocados na posição determinada por uma função
Leia maisÁrvores Binárias de Busca (ABB) 18/11
Árvores Binárias de Busca (ABB) 18/11 Definição Uma Árvore Binária de Busca possui as mesmas propriedades de uma AB, acrescida da seguintes propriedade: Para todo nó da árvore, se seu valor é X, então:
Leia maisEstruturas de Dados I
Estruturas de Dados I Rodrigo Porfírio da Silva Sacchi rodrigosacchi@ufgd.edu.br 3410-2075 Aula 6: Listas Encadeadas e Alocação Dinâmica Listas Encadeadas e Alocação Dinâmica Alocação Seqüencial versus
Leia maisLista de Exercícios 04
Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM Disciplina: BCC202 - Estruturas de Dados I Professor: Túlio Toffolo (www.decom.ufop.br/toffolo)
Leia maisUniversidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Algoritmos e Estruturas de Dados II Prof. Fabrício Sérgio de Paula
Universidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Algoritmos e Estruturas de Dados II Prof. Fabrício Sérgio de Paula Tópicos Introdução Alocação sequencial Listas lineares,
Leia maisHashing. Hashing. Hashing versus Indexação. Hashing. Hashing convencional... Exemplo de espalhamento. Revisão...
Algoritmos e Estruturas de Dados II Hashing Prof Debora Medeiros Hashing convencional Revisão Adaptado dos Originais de: Maria Cristina F de Oliveira Cristina Ciferri Hashing Exemplo de espalhamento 0
Leia maisBases de Dados. Algoritmos. Custo de operação. Algoritmos de selecção. Algoritmo de ordenação. Algoritmos de junção.
Bases de Dados Algoritmos Custo de operação Algoritmos de selecção Algoritmo de ordenação Algoritmos de junção Outras operações Materialização e pipelining 2 1 Bases de Dados Algoritmos de selecção Algoritmos
Leia maisAula 31: Encadeamento exterior. Modelo de encadeamento exterior. Complexidade do encadeamento exterior
31.1 Aula 31: Encadeamento exterior Conceito de encadeamento Modelo de encadeamento exterior Complexidade do encadeamento exterior 31.2 Introdução Recordando: uma colisão ocorre quando duas chaves diferentes
Leia maisAula 3 Listas Lineares Sequenciais Ordenadas. prof Leticia Winkler
Aula 3 Listas Lineares Sequenciais Ordenadas prof Leticia Winkler 1 Listas Lineares Sequenciais Ordenadas Elementos da lista estão dispostos num vetor (contíguos na memória) e ordenado de acordo com alguma
Leia maisPesquisa em Memória Primária Hashing
Pesquisa em Memória Primária Hashing Livro Projeto de Algoritmos Nívio Ziviani Capítulo 5 Seções 5.5 http://www2.dcc.ufmg.br/livros/algoritmos/ ( Hashing ) Transformação de Chave Os registros armazenados
Leia maisUNIVERSIDADE DA BEIRA INTERIOR
UNIVERSIDADE DA BEIRA INTERIOR Algoritmos e Estruturas de Dados - Bioengenharia 2º Semestre Exame Época Normal Resolução 13/junho/2015 A. [3.5 val] Algoritmos de ordenação e de pesquisa Considere-se as
Leia maisPesquisa em memória primária: hashing. Algoritmos e Estruturas de Dados II
Pesquisa em memória primária: hashing Algoritmos e Estruturas de Dados II Hashing Algoritmos vistos efetuam comparações para localizar uma chave. Os registros armazenados em uma tabela são diretamente
Leia maisMétodos de Ordenação
Métodos de Ordenação Conceitos básicos sobre ordenação Ordenar corresponde ao processo de rearranjar um conjunto de objetos em uma ordem específica. Objetivo da ordenação: facilitar a recuperação posterior
Leia maisBases de Dados. Índices. Discos. transferência rápida e aos bytes. transferência lenta e em blocos (512B ~ 4KB) memória. disco BD / aplicação
Bases de Dados Índices Discos transferência lenta e em blocos (512B ~ 4KB) transferência rápida e aos bytes memória disco BD / aplicação 2 1 Discos 7200rpm = 120 rot/s 1 5 platters Ø 8.9 cm 50000 ~ 100000
Leia maisLinguagem de Maquina II. Visão Geral
Linguagem de Maquina II Visão Geral Revisão A linguagem de máquina é composta de seqüências binárias (1's e 0's) São interpretadas como instruções pelo hardware A linguagem de montagem e a linguagem de
Leia maisSCC Capítulo 5 Métodos de Busca [3]
SCC-201 - Capítulo 5 Métodos de [3] João Luís Garcia Rosa 1 1 Departamento de Ciências de Computação Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos http://www.icmc.usp.br/~joaoluis
Leia maisEstrutura de Dados. Ricardo José Cabeça de Souza Parte 9
Estrutura de Dados Ricardo José Cabeça de Souza www.ricardojcsouza.com.br Parte 9 VETOR Ao declararmos um vetor, reservamos um espaço contíguo de memória para armazenar seus elementos Vetor não é uma estrutura
Leia maisHashing Endereçamento Direto Tabelas Hash
Hashing Endereçamento Direto Tabelas Hash Professora: Fátima L. S. Nunes 1 1 1 Vimos até agora: Introdução Conceitos e técnicas de Orientação a Objetos Conceitos e aplicações de Complexidade Assintótica
Leia maisÁRVORES E ÁRVORE BINÁRIA DE BUSCA
ÁRVORES E ÁRVORE BINÁRIA DE BUSCA Prof. André Backes Definição 2 Diversas aplicações necessitam que se represente um conjunto de objetos e as suas relações hierárquicas Uma árvore é uma abstração matemática
Leia maisListas Estáticas. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof.
Listas Estáticas SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de
Leia maisÁrvores de Pesquisa (Parte I)
Baseado no material do Prof. Reinaldo Fortes para o curso de 2014-01 Arquivo original: 21._arvores_(parte_1) Árvores de Pesquisa (Parte I) Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Algoritmos
Leia maisESTRUTURA DE DADOS LISTAS LINEARES
ESTRUTURA DE DADOS LISTAS LINEARES Prof. Dr. Daniel Caetano 2014-2 Objetivos Compreender as listas sequenciais Implementar uma Lista Sequencial com Vetor Compreender o uso de listas sequenciais Material
Leia mais