TABELAS DE DISPERSÃO/HASH

Tamanho: px
Começar a partir da página:

Download "TABELAS DE DISPERSÃO/HASH"

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 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 mais

Algoritmos de pesquisa. Tabelas de dispersão/hash

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 (array). Se o vetor não está ordenado, a pesquisa requer O(n) de

Leia mais

Tabelas Hash. informação, a partir do conhecimento de sua chave. Hashing é uma maneira de organizar dados que:

Tabelas 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 mais

Dicionários. TAD Orientado a conteúdo

Dicioná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 mais

Tabelas de dispersão/hash

Tabelas 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 mais

TABELA HASH. Prof. André Backes. Princípio de funcionamento dos métodos de busca

TABELA 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 mais

Matemática Discreta 12

Matemá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 mais

Tabela 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 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 mais

Hashing: conceitos. Hashing

Hashing: 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 mais

HASHING HASHING 6/10/2008

HASHING 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 mais

i a[i]

i 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 mais

Métodos de Busca Parte 2

Mé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 mais

SCC0601 Introdução à Ciência da Computação II. Prof. Lucas Antiqueira

SCC0601 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 mais

Tabelas 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 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 mais

A inserção da chave 6 da árvore acima resulta na árvore abaixo.

A 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 Á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 mais

HASHING Hashing Motivação - Acesso Direto:

HASHING 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 mais

As 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.

As 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 mais

Complexidade de Algoritmos

Complexidade 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 mais

TAD dicionário. Métodos do TAD dicionário:

TAD 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 mais

UNIVERSIDADE DA BEIRA INTERIOR

UNIVERSIDADE 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 mais

Mé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 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 mais

Introdução Métodos de Busca Parte 2 - Hashing

Introduçã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 mais

Dicionários. Prof. César Melo

Dicioná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 mais

Hashing (Tabela de Dispersão)

Hashing (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 mais

Edital 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 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 mais

Tabelas Hash. Prof. Túlio Toffolo BCC202 Aulas 23 e 24 Algoritmos e Estruturas de Dados I

Tabelas 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 mais

Tabelas de Hash MBB. Novembro de Algoritmos e Complexidade LEI-LCC

Tabelas 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 mais

MC3305 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. 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 mais

Estruturas de Dados Tabelas de Espalhamento

Estruturas 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 mais

Implemente 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) { 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 mais

Tabelas de Dispersão. Estrutura de Dados e Algoritmos

Tabelas 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 mais

Tabelas 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? 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 mais

Pesquisa em Memória Primária. Prof. Jonas Potros

Pesquisa 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 mais

Hashing Organização Direta de Arquivos

Hashing 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 mais

Hashing 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 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 mais

Métodos de Busca Parte 1

Mé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 mais

UNIVERSIDADE DA BEIRA INTERIOR

UNIVERSIDADE 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 mais

Lista 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) 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 mais

ESTRUTURA DE DADOS E ALGORITMOS. Hashing (Tabela de Dispersão) Cristina Boeres

ESTRUTURA 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 mais

O acesso aos elementos é aleatório, isto é, qualquer elemento numa colecção pode ser acedido realizando uma pesquisa pela chave.

O 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 mais

Transformação de Chave. (Hashing)

Transformaçã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 mais

UNIVERSIDADE DA BEIRA INTERIOR

UNIVERSIDADE 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 mais

Universidade de São Paulo

Universidade 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 mais

Matrizes esparsas: definição

Matrizes 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 mais

ACH2024. Aula 22 Hashing Externo - Hashing estático e dinâmico (extensível) Prof Helton Hideraldo Bíscaro

ACH2024. 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 mais

TABELAS HASH. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

TABELAS 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 mais

Hashing. Cormen Capítulo 11

Hashing. 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 mais

Estruturas de Dados Estruturas de Dados Fundamentais

Estruturas 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 mais

Algoritmos 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 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 mais

AED Algoritmos e Estruturas de Dados LEEC /2007. Tabelas de Dispersão

AED 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 mais

Transformação de Chave - Hashing

Transformaçã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 mais

Tabela Hash. Prof. Msc. Mariella Berger

Tabela 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 mais

Capítulo VIII. Tipo Abstracto de Dados Dicionário. Acesso por Chave

Capí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 mais

Tabelas de Dispersão - Introdução (1)

Tabelas 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 mais

Edital 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 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 mais

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

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 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 mais

Tabelas 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 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 mais

Tabelas de Dispersão. Tabela de Dispersão

Tabelas 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 mais

UNIVERSIDADE DA BEIRA INTERIOR

UNIVERSIDADE 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 mais

Edital 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 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 mais

Bases 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 + 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 mais

Lista de Exercícios sobre Listas Implementadas por Encadeamento

Lista 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 mais

Classificaçã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 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 mais

Edital 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 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 mais

UNIVERSIDADE DA BEIRA INTERIOR

UNIVERSIDADE 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. / 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 mais

Tabelas de Espalhamento (hash)

Tabelas 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 mais

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.

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. 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 mais

Tabela Hash. Disciplina: Estruturas de Dados Professora: Camila Taumaturgo M.Sc.

Tabela 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 mais

Introdução Métodos de Busca Parte 1

Introduçã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 mais

Hashing. Prof. Josenildo Silva IFMA 2014

Hashing. 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 mais

Tabelas Hash. Prof. Túlio Toffolo BCC202 Aula 21 Algoritmos e Estruturas de Dados I

Tabelas 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 mais

Hashing convencional...

Hashing 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 mais

Endereçamento Aberto

Endereç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 mais

Tabelas de dispersão

Tabelas 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 Á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 mais

Estruturas de Dados I

Estruturas 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 mais

Lista de Exercícios 04

Lista 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 mais

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

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 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 mais

Hashing. Hashing. Hashing versus Indexação. Hashing. Hashing convencional... Exemplo de espalhamento. Revisão...

Hashing. 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 mais

Bases 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. 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 mais

Aula 31: Encadeamento exterior. Modelo de encadeamento exterior. Complexidade do encadeamento exterior

Aula 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 mais

Aula 3 Listas Lineares Sequenciais Ordenadas. prof Leticia Winkler

Aula 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 mais

Pesquisa em Memória Primária Hashing

Pesquisa 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 mais

UNIVERSIDADE DA BEIRA INTERIOR

UNIVERSIDADE 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 mais

Pesquisa 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 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 mais

Métodos de Ordenação

Mé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 mais

Bases 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 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 mais

Linguagem de Maquina II. Visão Geral

Linguagem 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 mais

SCC Capítulo 5 Métodos de Busca [3]

SCC 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 mais

Estrutura de Dados. Ricardo José Cabeça de Souza Parte 9

Estrutura 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 mais

Hashing Endereçamento Direto Tabelas Hash

Hashing 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 Á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 mais

Listas Estáticas. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof.

Listas 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)

Á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 mais

ESTRUTURA DE DADOS LISTAS LINEARES

ESTRUTURA 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