Matemática Discreta 12
|
|
|
- João Gabriel de Almada Zagalo
- 7 Há anos
- Visualizações:
Transcrição
1 Universidade Federal do Vale do São Francisco Curso de Engenharia da Computação Matemática Discreta 12 Prof. Jorge Cavalcanti - 1
2 Introdução Hashing (espalhamento) é uma forma simples, fácil de implementar e intuitiva de se organizar grandes quantidades de dados. Permite armazenar e encontrar rapidamente dados por chaves. Possui como idéia central a divisão de um universo de dados a ser organizado em subconjuntos mais gerenciáveis. Possui dois conceitos centrais: Tabela de Hashing estrutura que permite acesso aos subconjuntos; Função de Hashing função que realiza o mapeamento entre valores da chave e entradas da tabela. c h av Função Hashing h(k) Tabela Hashing e s Subconjuntos 2
3 Por que usar Hashing? Estruturas de busca sequencial levam tempo até encontrar o elemento desejado. Ex: Arrays e listas Ex: Árvores
4 Por que usar Hashing? Em algumas aplicações, é necessário obter o valor com poucas comparações, logo, é preciso saber a posição em que o elemento se encontra, sem precisar varrer todas as chaves. A estrutura com tal propriedade é chamada de tabela hashing. A tabela segue a propriedade da função de hashing estabelecida. Ex: h(k)= k mod n, n=8 20 % 8 = 4 45 % 8 = ? ? 4
5 Ex.: Considere uma chave de identificação numérica com valores entre 0 e 1000 bem como uma tabela de armazenamento com entradas indexadas de 1 a 23. Uma função de hashing simples e razoável seria: hash= h:{0,1,...,1000} {1,2,3,...,23}, tal que para c {0,1,...,1000}, tem-se que: h(c) = (c mod 23) + 1, onde mod calcula o resto da divisão inteira Função Hashing h(k) (c mod 23) + 1 Tabela Hashing Subconjuntos Chave End
6 Então, se possuímos um universo de dados classificáveis por chaves, podemos: Criar um critério simples para dividir este universo em subconjuntos com base em alguma qualidade do domínio das chaves; Saber em qual subconjunto procurar e colocar uma chave; Gerenciar esses subconjuntos menores por algum método simples; Para isso, precisamos: Saber quantos subconjuntos eu quero criar e uma regra de cálculo que nos diga, dada uma chave, em qual subconjunto devo procurar pelos dados com esta chave ou colocar este dado, caso seja um novo elemento; Esta regra é uma Função de Hashing, também chamada de função de cálculo de endereço, função de randomização ou função de aleatorização. Possuir um índice que permita encontrar o início do subconjunto certo, depois de calcular o hashing. Isto é uma tabela de hashing. 6
7 A função hashing é a responsável por gerar um índice a partir de determinada chave. A Tabela hashing pode apontar para posições na forma de vetores simples ou listas. c h av Função Hashing h(k) Tabela Hashing e s Vetor simples com valores c h av Função Hashing h(k) Tabela Hashing e s Vetor de listas 7
8 Ex.: Função de Hash: Qual a 1ª letra do nome? 8
9 Função de Hashing Possui o objetivo de transformar o valor de chave de um elemento de dados em uma posição para este elemento em um dos b subconjuntos definidos. Deve procurar dividir o universo de chaves K = {k 0,..,k m } em b subconjuntos de mesmo tamanho. A probabilidade de uma chave k j pertencente a K aleatória qualquer cair em um dos subconjuntos b i : i pertencente a [1,b] deve ser uniforme. Se a função de Hashing não dividir K uniformemente entre os b i, a tabela de hashing pode degenerar. O pior caso de degeneração é aquele onde todas as chaves caem em um único conjunto b i. A função "primeira letra" do exemplo anterior é um exemplo de uma função ruim. A letra do alfabeto com a qual um nome inicia não é distribuída uniformemente. Quantos nomes começam com "X"? 9
10 Uma função de Hashing deve procurar satisfazer as seguintes condições: Ser simples de calcular; Assegurar que elementos distintos tenham índices distintos; Gerar uma distribuição equilibrada para os elementos dentro do array ou subconjuntos; Deve ser aleatória, ou pseudo-aleatória, para prevenir adivinhações do valor original; Deve ter mão única, o que significa ser muito difícil a partir do endereço e dos valores originais obter a função. A forma de transformação mais simples e utilizada é a Divisão, como vista anteriormente: h(k j ) = mod(k j,b) + 1, onde b (preferencialmente um número primo) é o número de subconjuntos em dividimos os dados. 10
11 A função ideal é aquela que gera um endereço diferente para cada um dos possíveis valores das chaves (Função injetora). Porém nem sempre é possível e ai geram colisões, ou seja, em alguns casos, podem ser atribuídos mesmos endereços a chaves com valores diferentes. Diferenças entre hashing e indexação: No espalhamento, os endereços parecem ser aleatórios não existe conexão óbvia entre a chave e o endereço, apesar da chave ser utilizada no cálculo do endereço No espalhamento, duas chaves podem levar ao mesmo endereço (colisão) portanto as colisões devem ser tratadas. 11
12 Chaves não-numéricas: Ex.:Suponha que foi reservado espaço para manter registros e considere a seguinte h(k): Obter as representações ASCII dos dois primeiros caracteres do nome; Multiplicar estes números e usar os três dígitos menos significativos do resultado para servir de endereço. Nome Cod ASCII para 2 primeiras letras Produto Endereço BALL x 65 = LOWELL x 96 = TREE x 82 =
13 Continuação Exemplo: O ideal é usar uma função de espalhamento perfeita, que não produz colisão, mas... Duas palavras diferentes podem produzir o mesmo endereço (colisão), pois as chaves são sinônimas Temos, h(lowell)=h(lock)=h(oliver) 13
14 Colisões Colisão: quando duas ou mais chaves são mapeadas na mesma posição da tabela de hash; Tipicamente, o número de posições numa tabela de hash é pequeno comparado com o universo de chaves possíveis; A maioria das funções de hash usadas na prática mapeiam várias chaves na mesma posição na tabela de hash. Problemas de hashing: Encontrar funções de hash que distribuam as chaves de modo uniforme e minimizem o número de colisões; Resolver colisões. 14
15 Colisões Devido ao fato de existirem mais chaves que posições, é comum que várias chaves sejam mapeadas na mesma posição. Ex: 45 % 8 = % 15 = % 8 = % 15 = % 8 = % 15 = 11 O que fazer quando mais de um elemento for inserido na mesma posição de uma tabela hash? 15
16 Endereçamento Fechado (Closed Addressing) No endereçamento fechado, a posição de inserção não muda, logo, todos devem ser inseridos na mesma posição, através de uma lista ligada em cada uma. 20 % 5 = % 5 = 3 25 % 5 = 0 colisão com
17 Endereçamento Fechado (Closed Addressing) A busca é feita do mesmo modo: calcula-se o valor da função hash para a chave, e a busca é feita na lista correspondente. Se o tamanho das listas variar muito, a busca pode se tornar ineficiente, pois a busca nas listas é seqüencial:
18 Endereçamento Fechado (Closed Addressing) Por esta razão, a função hash deve distribuir as chaves entre as posições uniformemente: Se o tamanho da tabela for um número primo, há mais chances de ter uma melhor distribuição. 18
19 Endereçamento Aberto (Open Addressing) No endereçamento aberto, quando uma nova chave é mapeada para uma posição já ocupada, uma nova posição é indicada para esta chave. A nova posição é incrementada até que uma posição vazia seja encontrada (linear probing): 27 % 8 = ?
20 Endereçamento Aberto (Open Addressing) Valores: 52, 78, 48, 61, 81, 120, 79, 121, 92 Função: hash(k) = k % 13 Tamanho da tabela:
21 Endereçamento Aberto Remoção Para fazer uma busca com endereçamento aberto, basta aplicar a função hash, e a função de incremento até que o elemento ou uma posição vazia sejam encontrados. Porém, quando um elemento é removido, a posição vazia pode ser encontrada antes, o que significaria fim de busca, MESMO que o elemento PERTENÇA à tabela: 27? Não Fim da busca? Sim Inserção do 27 Remoção do 20 Busca pelo 27 21
22 Endereçamento Aberto Remoção Para contornar esta situação, mantemos um bit (ou um campo booleano) para indicar que um elemento foi removido daquela posição: 27? Não X 27 7 Fim da busca? Não Esta posição estaria livre para uma nova inserção, mas não seria tratada como vazia numa busca. 22
23 Endereçamento Aberto Expansão Nesta política de hashing, há o que chamamos de fator de carga (load factor). Este fator indica a porcentagem de células da tabela hash que estão ocupadas, incluindo as que foram removidas. Quando este fator fica muito alto (ex: excede 50%), as operações na tabela passam a demorar mais, pois o número de colisões aumenta. 9? 64 1 X 11 X
24 Endereçamento Aberto Expansão Quando isto ocorre, é necessário expandir o array que constitui a tabela, e reorganizar os elementos na nova tabela. Como podemos ver, o tamanho atual da tabela passa a ser um parâmetro da função hash X Tamanho = 7 Tamanho =
25 Endereçamento Aberto Expansão O momento ou critério para expandir a tabela pode variar: Impossibilidade de inserir um elemento Metade da tabela está ocupada O load factor atingiu um valor limite escolhido A terceira opção é a mais comum, pois é um meio termo entre as outras duas. 25
26 Quando não usar Hashing? Muitas colisões diminuem muito o tempo de acesso e modificação de uma tabela hash. Para isso é necessário escolher bem: a função hash o tratamento de colisões o tamanho da tabela Quando não for possível definir parâmetros eficientes, pode ser melhor utilizar árvores balanceadas (como AVL), em vez de tabelas hash. + Hashing em Estruturas de Dados 26
27 Exercícios: 1 - Ilustre a organização final de uma Tabela Hash após a inserção das seguintes chaves: 35, 99, 27, 18, 65, 45. Considere a tabela com tamanho 6 (posições 0 a 5), o método da divisão inteira como função de hashing e tratamento de colisão por endereçamento fechado. Considere também que os números possíveis de chaves estão no intervalo entre 1 a Idem à questão anterior, porém o tratamento de colisão será por endereçamento aberto (linear probing). 27
28 Exercícios: 3 Seja uma função h(k) = k % 11 e os dados abaixo obtidos para uma sequência de chaves: key h(key) Resolva as colisões por endereçamento aberto. Qual o fator de carga da tabela? 4 Sejam as seguintes entradas para uma tabela hash de 07 posições: 0, 4, 6, 11, 15, 7, 9, 3, 25, 22. Estabeleça uma função hash, ilustre como seria a distribuição dos dados na tabela a partir dessa função e trate as possíveis colisões por endereçamento fechado. 28
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
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
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.
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......
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.
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
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,
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;
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,
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
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
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
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)
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:
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)
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 é
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
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
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
Á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
Hashing. Rafael Nunes LABSCI-UFMG
Hashing Rafael Nunes LABSCI-UFMG Sumário Mapeamento Hashing Porque utilizar? Colisões Encadeamento Separado Endereçamento Aberto Linear Probing Double Hashing Remoção Expansão Quando não usar! Mapeamento
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
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
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
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
Tabelas Hash. Jeane Melo
Tabelas Hash Jeane Melo Roteiro Introdução Motivação Definição Tabelas Hash Exemplos Funções hash Colisões Introdução Estudamos a utilização de estruturas como listas e árvores para armazenar informações
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
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
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
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
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
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
Á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
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
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
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
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
HASHING HASHING HASHING HASHING. HASHING - Função hash - Propriedades HASHING. Notas de aula da disciplina IME Estruturas de Dados I
Notas de aula da disciplina IE - Estruturas de Dados I Paulo Eustáquio Duarte Pinto (pauloedp arroba ime.uerj.br) Árvores de Busca: Atualização/Busca - caso médio: O(log n) Atualização/Busca - pior caso:
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
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
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
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
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
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
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
AED 2002/2003 p.1/16. Tabelas de Dispersão. Funçoes de dispersão Encadeamento externo Procura linear Double hashing Eficiência da procura
AED 2002/2003 p.1/16 Tabelas de Dispersão Funçoes de dispersão Encadeamento externo Procura linear Double hashing Eficiência da procura AED 2002/2003 p.2/16 Funções de dispersão Deve distribuir as chaves
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
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
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
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
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
ACH2025. Laboratório de Bases de Dados Aula 9. Indexação e Hashing Parte 2. Professora: Fátima L. S. Nunes SISTEMAS DE INFORMAÇÃO
ACH2025 Laboratório de Bases de Dados Aula 9 Indexação e Hashing Parte 2 Professora: Fátima L. S. Nunes Índices: Até agora: primários denso esparso índices sequenciais (ordenados) secundários denso Índices:
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
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
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.
Hashing. Estruturas de Dados. Motivação
Estruturas de Dados Hashing Prof. Ricardo J. G. B. Campello Parte deste material é baseado em adaptações e extensões de slides disponíveis em http://ww3.datastructures.net (Goodrich & Tamassia). Motivação
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
INF70 Gerenciamento de Banco de Dados 2 Índices baseados em Hash
INF70 Gerenciamento de Banco de Dados Índices baseados em Hash Ilmério Reis da Silva [email protected] www.facom.ufu.br/~ilmerio/gbd Roteiro Fundamentos Hash Estático Hash Extensível Hash Linear Considerações
Matemática Discreta. SLIDE 3 Professor Júlio Cesar da Silva. site:
Matemática Discreta SLIDE 3 Professor Júlio Cesar da Silva [email protected] site: http://eloquium.com.br/ twitter: @profjuliocsilva Números Primos: são os números naturais que têm apenas dois
GBC053 Gerenciamento de Banco de Dados Índices baseados em Hash
GBC053 Gerenciamento de Banco de Dados Índices baseados em Hash Ilmério Reis da Silva [email protected] www.facom.ufu.br/~ilmerio/gbd UFU/FACOM/BCC UFU/FACOM/BCC GBD Página: Roteiro Fundamentos Hash
HASHING. Katia Guimarães. [email protected] 1
HASHING Katia Guimarães [email protected] 1 HASHING Suponha que você pudesse criar um array onde qualquer item pudesse ser localizado através de acesso direto. Isso seria ideal em aplicações do tipo Dicionário,
ESTRUTURAS DE DADOS E ALGORITMOS TABELA HASH
ESTRUTURAS DE DADOS E ALGORITMOS 1 TABELA HASH Adalberto Cajueiro Departamento de Sistemas e Computação Universidade Federal de Campina Grande ESTRUTURAS VISTAS ATÉ AGORA Busca O(n) Busca O(log(n)) 2 É
