Hashing: conceitos. Hashing

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

Download "Hashing: conceitos. Hashing"

Transcrição

1 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 tipo) a uma chave, permitindo uma indexação a chave é o atributo pelo qual um elemento pode ser identificado dos demais exemplo de indexação: string (cadeia de caracteres) inteiro Algoritmos 1057 Hashing 706 TABELA 425 Hashing: conceitos por que usar hashing? Em algumas estruturas a busca leva tempo até encontrar o elemento desejado. Exemplos: vetores e listas árvores algumas aplicações que são beneficiadas pelo uso de hashing são os dicionários de arquivos (de banco de dados) e arquivos relacionados aos sistemas operacionais e compiladores

2 Hashing: conceitos outro exemplo de indexação: tabuleiro do jogo da velha O O O = 0 = 1 = 2 O O = 1 x x x x 3 6 = = 1272 se fôssemos indexar todas as possíveis representações do tabuleiro, de quantas chaves necessitaríamos? Hashing: conceitos exemplo de indexação: tabuleiro do jogo da velha cada tabuleiro é mapeado em um valor único, entre 0 e e, portanto, é possível recuperar o tabuleiro a partir de sua chave através da chave, podemos indexar os objetos, por exemplo, em um array, caso o tamanho seja suficiente: O O O O O O O O O O O O O O O O O O O O qual seria a chave para indexar este objeto? O 2

3 Hashing: tabela a tabela hash é uma estrutura de dados (array) que associa chaves de pesquisa (hash) a valores e são utilizadas quando o número de chaves efetivamente armazenadas é muito menor que o universo de chaves ao invés de organizar a tabela segundo o valor relativo de cada chave em relação às demais, a tabela hash leva em conta somente o seu valor absoluto, interpretado como um valor numérico armazena-se os elementos em um array na posição indicada pelo número associado ao elemento a idéia é que cada elemento em um conjunto possua um número associado a ele e quaisquer dois elementos distintos possuam números associados diferentes Hashing: tabela se conseguirmos associar a cada elemento a ser armazenado um número, poderemos realizar as operações de inserção, remoção e busca em tempo constante as tabelas hash são usadas para indexação de grandes volumes de informação (como bases de dados) porque melhoram o desempenho em pesquisas e recuperações (acessos) em tabelas hash, usamos uma função para calcular onde colocamos cada elemento, ou seja, esta função mapeia um símbolo para valores inteiros e tem o objetivo de reduzir o número de índices e posições da tabela a manipular 3

4 Hashing: tabela considere uma tabela com m posições, que contenha n elementos define-se o fator de carga f c de uma tabela hash como sendo o número médio de elementos armazenados em uma cadeia, ou seja, n f c = m esse valor é usado para avaliar quão eficiente as remoções e recuperações podem ser e para determinar quando é necessário reestruturar a tabela (re-hash) quanto menor o fator de carga, menos tempo as funções de busca e inserção irão consumir deseja-se que o fator de carga seja próximo de 1, porque desta forma pode-se encontrar uma chave com 1 ou 2 comparações se ele for muito pequeno, tem-se uma tabela vazia e uma utilização ineficiente do espaço Hashing: função esta função (de mapeamento) que associa a cada elemento de um conjunto U (universo das chaves) um número que sirva de índice em uma tabela (array) é chamada de função hash a função hash é utilizada para calcular a posição que um elemento deve ser armazenado a partir de uma chave k, ou seja, ela mapeia o universo U de chaves nas posições de uma tabela hash T[0...m-1] uma função hash deve satisfazer as seguintes condições: ser simples de calcular assegurar que elementos distintos possuam índices distintos gerar uma distribuição equilibrada para os elementos dentro do array criar uma função hash satisfazendo as condições colocadas nem sempre é uma tarefa fácil e existem muitos modelos para sua criação 4

5 Hashing: função uma boa função hash é aquela em que toda entrada (slot) do array possui a mesma probabilidade de ser atingida pela função dizemos que uma função hash está adequada se cada chave tem a mesma chance de cair em qualquer uma das posições da tabela a grande vantagem na utilização de hashing está no desempenho, ou seja, no tempo esperado para a recuperação dos elementos enquanto a busca linear tem complexidade temporal (do número de elementos N) a busca binária tem complexidade logarítmica (log 2 N) o tempo de busca usando hashing é praticamente independente do número de chaves armazenadas na tabela aplicando a função hash no momento de armazenar e no momento de buscar a chave, a busca pode se restringir diretamente àquela posição da tabela gerada pela função Hashing: função / colisões chama-se h de função hash e h(k), de valor hash de k usa-se h para calcular a posição onde o elemento x será armazenado a partir de sua chave k 5

6 Hashing: função / colisões idealmente, cada chave processada por uma função hash deveria gerar uma posição diferente na tabela mas, devido ao fato de existirem mais chaves que posições, é comum que várias chaves sejam mapeadas para a mesma posição da tabela quando isto ocorre, dizemos que houve uma colisão alguns autores usam o termo sinônimos para se referir a dois elementos com mesmo valor de hash Exemplo: seja h(k) = k mod 8 e h(k) = k mod mod 8 = mod 15 = mod 8 = mod 15 = mod 8 = mod 15 = 11 45, 21 e 93 são sinônimos e 1256, 356 e 506, também / colisões uma colisão ocorre quando a posição em que devemos inserir um elemento já está ocupada não há funções h que não produzam colisões como escolher funções hash adequadas? a função h deve distribuir uniformemente as chaves nas m posições da tabela: k: h( k ) = p 1 P( k) = para cadap = 0,1,2..., m 1 m a soma das probabilidades de ocorrência de chaves k mapeadas para p deve ser igual a 1/m, para todas as posições p da tabela a função h deve espalhar bem os elementos para minimizar o número de colisões: muitas colisões eliminam a vantagem da técnica 6

7 funções genéricas que funcionem bem na maior parte das situações: utilização do método da divisão utilização do método da multiplicação a maior parte das funções hash supõe que o universo de chaves é o conjunto dos números naturais se as chaves não são números naturais, deve-se encontrar um modo de interpretá-las como números naturais método da divisão considere que a chave é um número natural k o método consiste em usar o resto da divisão de k pelo número de posições (m) na tabela define-se a função com sendo: h( k) = k modm o resto dessa divisão inteira, um valor entre 0 e m-1, é considerado o endereço de uma tabela hash de m posições 7

8 método da divisão para reduzir colisões, é recomendável que m não seja potências de 2 e 10 e, preferencialmente, seja um número primo se m é muito grande a função não distribui bem os elementos exemplo, se a tabela hash tem tamanho m = 12 chave é k = 100, então h(k) = 4 pelo fato de só exigir uma única operação (de divisão), o hash por divisão é bastante rápido método da multiplicação a idéia é multiplicar o valor de k por uma constante real (A) menor que 1 do resultado, ignora-se a parte inteira, obtendo-se um resultado intermediário aparentemente aleatório ' menor que 1 esse resultado é multiplicado por m, o que resulta em um valor entre 0 e m-1, cuja parte fracionária é ignorada a função pode ser escrita assim: h ( k) = m[( ka) mod1] x é a parte inteira de x onde (ka mod 1) significa a parta fracionária de ka, ou seja ka ka 8

9 método da multiplicação a principal vantagem deste esquema é que a escolha de m deixa de ser problemática não há restrições de que m seja uma potência de 2, portanto pode-se escolher potências de 2 para m o valor da constante A é que pode influenciar na qualidade da função a escolha ótima de A depende das características dos dados sobre os quais está sendo feito o hash estudos matemáticos de Knuth indicam que um bom valor para A em situações genéricas é A = (5 ½ - 1)/ método da multiplicação exemplo: suponha m = 2 7 = 128 tem-se k = 13 usa-se A = ka mod 1 = m x = h(k) = 4 qual é o valor de h(k) se k = 123? e se diminuirmos o número de posições na tabela hash de 2 7 para 2 5, qual o valor de h(k=123)? E de h(k=13)? 9

10 Hashing: colisões o que fazer quando mais de um elemento for inserido na mesma posição de uma tabela hash? o processamento de tabelas hash demanda a existência de algum mecanismo para o tratamento de colisões as formas mais usuais de tratamento de colisão são: por endereçamento aberto (hashing aberto ou double) a estratégia é utilizar o próprio espaço da tabela que ainda não foi ocupado para armazenar a chave que gerou a colisão por encadeamento (hashing fechado) para cada posição onde ocorre colisão cria-se uma área de armazenamento auxiliar (lista ligada), externa à área da tabela hash Hashing: tabelas e funções Exercício 1) Explique o que são tabelas hash e compare-as com as tabelas de acesso direto. Exercício 2) O que significa dizer que o fator de carga de uma tabela hash não deve exceder 1? Exercício 3) O que é uma função hash? Quais as características de uma boa função hash? Exercício 4) Se U é o conjunto de chaves e se a tabela tem m posições, então a função hash (h) mapeia elementos do conjunto de chaves em posições da tabela na forma h: U {0,1,2,...,m-1}. Qual é a função h(k) que mapeia h: U {0,1,2,...,8}? 10

11 Hashing: tabelas e funções Exercício 5) Seja h(k) = k mod 100. Como o valor de h(k) depende dos dígitos que formam k? Exercício 6) Suponha que se está utilizando uma tabela hash com m entradas e que a função hash é h(k) = 11k mod m, quando a entrada é a k-ésima letra do alfabeto (por exemplo, C corresponde a k = 3). Desenhe a tabela hash que ilustra o processo de inserção das chaves E A S Y P R O G T H I N G quando m=16, calcule o fator de carga desta tabela e identifique as possíveis colisões. Exercício 7) Seja um conjunto de elementos que é constituído de strings de no máximo 8 caracteres. Uma função hash pode ser obtida somando os valores ASCII dos caracteres e aplicando o método da divisão, supondo que a quantidade de posições da tabela seja m = (número primo). Dê exemplos de como ficará a tabela hash e analise se a distribuição nessa tabela ficou equilibrada. Se não, sugira alguma solução mantendo m = Hashing: tabelas e funções Exercício 8) Considere uma tabela hash com m=1000 posições e função hash: h(k) = k mod m a) calcule as posições onde os elementos de chaves 61, 62, 63, 64 e 65 serão colocados na tabela b) calcule onde os mesmos elementos seriam colocados se a função hash fosse h(k) = m [(ka) mod 1)] com A = (5 1/2 1)/2 c) compare e comente os resultados de b) com os de a) 11

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 [email protected] - www.univasf.edu.br/~jorge.cavalcanti 1 Introdução

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

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 [email protected] 2Q-2015 1 Sobre a busca de dados/chaves 2 Busca em tabelas (vetores/arrays) Para se resolver

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

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

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

13 Hashing (parte 2) SCC201/501 - Introdução à Ciência de Computação II

13 Hashing (parte 2) SCC201/501 - Introdução à Ciência de Computação II 13 Hashing (parte 2) SCC201/501 - Introdução à Ciência de Computação II Prof. Moacir Ponti Jr. www.icmc.usp.br/~moacir Instituto de Ciências Matemáticas e de Computação USP 2010/2 Moacir Ponti Jr. (ICMCUSP)

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

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

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

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

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

Tabela Hash. Prof. Msc. Mariella Berger

Tabela Hash. Prof. Msc. Mariella Berger Tabela Hash Prof. Msc. Mariella Berger http://www.inf.ufes.br/~mberger [email protected] [email protected] HASHING Suponha que você pudesse criar um array onde qualquer item pudesse ser localizado

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

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

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

ANÁLISE E PROJETO DE BANCO DE DADOS

ANÁLISE E PROJETO DE BANCO DE DADOS ANÁLISE E PROJETO DE BANCO DE DADOS ESTRUTURAS E INDEXAÇÃO FELIPE G. TORRES ARQUIVOS Um arquivo é uma sequência de registros. Em muitos casos do mesmo tipo. Se cada registro no arquivo tem exatamente o

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

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

Á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 Funções Hashing Divisão Compressão de chaves alfanuméricas Multiplicação Enlaçamento Deslocado Limite Função Meio-Quadrado Extração Transformação

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

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: [email protected] Sumário Tabela Hash Introdução Princípios de funcionamento Funções de Dispersão Tratamento

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

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

Á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

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

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

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

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

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

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

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

Complexidade de Algoritmos

Complexidade de Algoritmos Complexidade de Algoritmos Prof. Diego Buchinger [email protected] [email protected] Prof. Cristiano Damiani Vasconcellos [email protected] Análise de complexidade de Estruturas

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

ACH2025. Laboratório de Bases de Dados Aula 8. Indexação e Hashing Parte 1. Professora: Fátima L. S. Nunes SISTEMAS DE INFORMAÇÃO

ACH2025. Laboratório de Bases de Dados Aula 8. Indexação e Hashing Parte 1. Professora: Fátima L. S. Nunes SISTEMAS DE INFORMAÇÃO ACH2025 Laboratório de Bases de Dados Aula 8 Indexação e Hashing Parte 1 Professora: Fátima L. S. Nunes Conceitos básicos Boa parte das consultas a BD referem-se a apenas uma parte pequena dos registros.

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

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

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

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

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 [email protected] 1 Transformações de Chave, ou Tabela Hash, ou Tabelas de Dispersão; Hashing

Leia mais

Hashing externo (II) Graça Nunes. Fonte: Folk & Zoelick, File Structures

Hashing externo (II) Graça Nunes. Fonte: Folk & Zoelick, File Structures Hashing externo (II) Graça Nunes Fonte: Folk & Zoelick, File Structures 1 Hashing Extensível Espalhamento Extensível (Extendible Hashing): permite um auto-ajuste do espaço de endereçamento do espalhamento

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

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

Tabela Hash: Índice remissivo

Tabela Hash: Índice remissivo Capítulo 3 Tabela Hash: Índice remissivo Um índice remissivo lista os termos e tópicos que são abordados em um documento juntamente com páginas em que aparecem. É bastante comum encontrar tais índices

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

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

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 [email protected] 1 Transformações de Chave, ou Tabela Hash, ou Tabelas de Dispersão; Hashing

Leia mais

Análise de algoritmos

Análise de algoritmos Análise de algoritmos Ordenação em tempo linear Prof. Flávio Rogério Uber (UEM/DIN) Autor: Prof. Marco Aurélio Lopes Barbosa (UEM/DIN) Conteúdo Limites inferiores para ordenação por comparações Ordenação

Leia mais

Um sistema de numeração posicional utiliza um conjunto de símbolos. O valor que cada

Um sistema de numeração posicional utiliza um conjunto de símbolos. O valor que cada APÊNDICE B Sistema de Numeração Posicional Um sistema de numeração posicional utiliza um conjunto de símbolos O valor que cada símbolo representa, no entanto, depende do seu valor nominal e do valor posicional,

Leia mais

Lista de Exercícios. Av. Trabalhador São-carlense, 400. centro. São Carlos - SP cep Brasil.

Lista de Exercícios. Av. Trabalhador São-carlense, 400. centro. São Carlos - SP cep Brasil. Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Ciências de Computação Disciplina de Organização de Arquivos Profa. Dra. Cristina Dutra de Aguiar Ciferri Lista

Leia mais

Variáveis e Memória. Revisão. Conceitos. Operações sobre a memória

Variáveis e Memória. Revisão. Conceitos. Operações sobre a memória Variáveis e Memória Revisão Estudamos, na Introdução, que os programas de computador implementam algoritmos, os quais manipulam um conjunto de dados para produzir um resultado. O algoritmo é um conjunto

Leia mais

Possui como idéia central a divisão de um universo de dados a ser organizado em subconjuntos mais gerenciáveis.

Possui como idéia central a divisão de um universo de dados a ser organizado em subconjuntos mais gerenciáveis. 3. Tabelas de Hash As tabelas de hash são um tipo de estruturação para o armazenamento de informação, de uma forma extremamente simples, fácil de se implementar e intuitiva de se organizar grandes quantidades

Leia mais

Estruturas de Dados. Prof.: Carlos Alberto Página da Disciplina:

Estruturas de Dados. Prof.: Carlos Alberto Página da Disciplina: Estruturas de Dados Prof.: Carlos Alberto Página da Disciplina: http://alged.webnode.com/ E-mail: [email protected] Estruturas de dados Programa da disciplina Estruturas de dados - referências

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

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

Aula 30: Tabelas de dispersão. Conceitos e princípios de funcionamento

Aula 30: Tabelas de dispersão. Conceitos e princípios de funcionamento 3.1 Aula 3: abelas de dispersão Conceitos e princípios de funcionamento Funções de dispersão Método da divisão 3.2 Idéia básica para o uso de tabelas de dispersão ransformar as chaves em endereços de uma

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