HASHING HASHING HASHING HASHING. HASHING - Função hash - Propriedades HASHING. Notas de aula da disciplina IME Estruturas de Dados I

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

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

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

Hashing: conceitos. Hashing

Endereçamento Aberto

Árvores B. Hashing. Estrutura de Dados II Jairo Francisco de Souza

Hashing. Cormen Capítulo 11

Transformação de Chave - Hashing

Tabelas Hash. Jeane Melo

MC3305 Algoritmos e Estruturas de Dados II. Aula 02 Hashing. Prof. Jesús P. Mena-Chalco.

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

Método Guloso. Troco mínimo. Paulo Eustáquio Duarte Pinto (pauloedp arroba ime.uerj.br) junho/2012. Troco mínimo. Troco mínimo

Organização de Arquivos

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

Backtracking. Backtracking

Classificação e Pesquisa de Dados. Aula 23 Organização de Arquivos: Arquivos Indexados, Diretos e Arquivos Invertidos

Hashing Letícia Rodrigues Bueno

Pesquisa em memória primária: hashing. Algoritmos e Estruturas de Dados II

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

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

Tabelas de Dispersão. Algoritmos e Estruturas de Dados Verão Cátia Vaz 1

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

Algoritmos e Estruturas de Dados II IEC013

Tabelas de hash Acabamos de estudar como implementar uma tabela hashing aberta e estudaremos agora como implementar uma tabela hashing fechada ou

ÁLGEBRA LINEAR AULA 5 MÉTODOS ITERATIVOS

f) (,) = (,2) g) (,) = (,) h) (,) = (, ) i) (,) = (3, 2 ) d) (,) = (3, 2) e) (,) = 2(,) f) (,) = (, ) +2 # ' ( +

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

Aula 15 Variáveis Indexadas (vetores)

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

Método de Newton para polinômios

TEOREMA FUNDAMENTAL DA ARITMÉTICA: APLICAÇÕES

Cálculo de Endereço (hashing) Pesquisa de Dados em Tabelas. Função de Cálculo de endereço chave. Eficiência

Algoritmos de pesquisa. Tabelas de dispersão/hash

Tabelas Hash. Aleardo Manacero Jr.

Estruturas de Dados Aula 1: Introdução e conceitos básicos 28/02/2011

Apontamentos de Matemática 6.º ano

Informática no Ensino de Matemática Prof. José Carlos de Souza Junior

a) Falsa. Por exemplo, para n = 2, temos 3n = 3 2 = 6, ou seja, um número par.

Arquivos de Acesso Direto. Vanessa Braganholo

Árvores AVL e Árvores B. Jeane Melo

Autovalores e Autovetores

Note-se que pelo Teorema de Euler. a φ(n) 1 (mod n) logo existe k nas condições da definição acima e. Raízes Primitivas. Ordem de um elemento

ÁRVORES E ÁRVORE BINÁRIA DE BUSCA

Matrizes esparsas: definição

Hashing. Estruturas de Dados. Motivação

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

Lista Encadeada (Linked List)

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

Operações com Números Naturais. 6 ano E.F. Professores Cleber Assis e Tiago Miranda

ICET CURSO: Ciência da Computação e Sistemas de Informação (Estrutura de Dados) Estudos Disciplinares Campus: Data: / / Nome:

MATEMÁTICA 1 MÓDULO 2. Divisibilidade. Professor Matheus Secco

SISTEMA DECIMAL. No sistema decimal o símbolo 0 (zero) posicionado à direita implica em multiplicar a grandeza pela base, ou seja, por 10 (dez).

Busca com informação e exploração. Inteligência Artificial. Revisão da aula passada: Heurística Admissível. Revisão da aula passada: Busca A *

Aula 07: Algoritmos de busca e Listas encadeadas

Professora Jeane Melo

Programa Analítico de Disciplina SIN213 Projeto de Algoritmos

Profa. Dra. Cristina Dutra de Aguiar Ciferri. Estruturas de Indexação de Dados

Estrutura de Dados. Estrutura de Dados Recursividade. Exemplo: 5! = 5 x 4! 4! = 4 x 3! 3! = 3 X 2! 2! = 2 x 1! 1! = 1 x 0!

Representação de Arranjos

Estruturas de Dados I

Fontes do Campo magnético

Hashing. Prof Márcio Bueno. /

Estruturas de Dados. Parte dos slides a seguir são adaptações, extensões e recodificações em C dos originais:

TESTES DE PRIMALIDADE

é encontrado no cruzamento da linha i com a coluna j, ou seja, o primeiro índice se refere à linha e o segundo à coluna.

Programação II. Árvores Binárias (Binary Trees) Bruno Feijó Dept. de Informática, PUC-Rio

Inteligência Artificial

Polos Olímpicos de Treinamento. Aula 7. Curso de Teoria dos Números - Nível 2. Aula de Revisão e Aprofundamento. Prof.

Unidade 7 - Bases e dimensão. A. Hefez e C. S. Fernandez Resumo elaborado por Paulo Sousa. 10 de agosto de 2013

Álgebra A - Aula 01 Algoritmo da divisão de Euclides e Algoritmo Euclideano estendido

1 OBJETIVOS 2 HORÁRIO DE AULAS 3 PROGRAMA

MA21 (2015) - Teste - Gabarito comentado. Problema 1 (OBM 2005) Na sequência de números

exemplos O conjunto das letras do nosso alfabeto; L= {a, b, c, d,..., z}. O conjunto dos dias da semana: S= {segunda, terça,... domingo}.

Algoritmos I Aula 8 Estrutura de controle: seleção

Exemplos: Os números 12, 18 e 30 têm conjuntos de divisores respectivamente iguais a:

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

Aula prática 5. Funções Recursivas

Busca com informação e exploração. Capítulo 4 Russell & Norvig Seção 4.2 e 4.3

Números Irracionais e Reais. Oitavo Ano

ALGORITMO DE EUCLIDES

Exercícios sobre algoritmos

Técnicas para Implementação de Jogos

Divisibilidade Múltiplos de um número Critérios de divisibilidade 5367

TEORIA DOS NÚMEROS : MMC E MDC

Notas de Aula Aula 2, 2012/2

Aula 10 Alocação Dinâmica de Memória Listas Encadeadas. prof Leticia Winkler

Sistemas Operacionais. Prof. André Y. Kusumoto

Memória Virtual. Prof. M.Sc. Bruno R. Silva CEFET-MG Campus VII

AGRUPAMENTO de ESCOLAS Nº1 de SANTIAGO do CACÉM Ano Letivo 2013/2014 PLANIFICAÇÃO ANUAL

HASHING. Katia Guimarães. 1

Tema VI. TRAÇADO EM PLANTA. Implantação da curva circular simples INTRODUÇÃO.

Autenticação por par de. chaves assimétricas. Bruno Follmann

EMGI Programação. Ficha 7 Resolução. Programação 1 Calcular a hipotenusa de um triângulo rectângulo, sabendo as medidas dos seus catetos:

Matrizes e Linearidade

MATEMÁTICA MÓDULO 1 TEORIA DOS NÚMEROS 1. DIVISIBILIDADE 1.1. DEFINIÇÃO 1.2. CRITÉRIOS DE DIVISIBILIDADE

Algoritmos geométricos

Unidade I Conjunto dos Números Naturais.

Revisão: Matrizes e Sistemas lineares. Parte 01

Aula T19 BCC202 Pesquisa (Parte 1) Pesquisa Binária. Túlio Toffolo

Faculdade de Ciências Exatas da PUC SP Sistemas de Informação Laboratório de Redes II - Prof. Julio Arakaki

Transcrição:

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: O(log n) Pergunta: Pode-se melhorar os dados anteriores? dezembro/ Resposta: Pode-se melhorar o primeiro, ao custo de piorar o segundo. Pergunta: Como tentar buscar mais rapidamente? Resposta: usando-se um vetor e fazendo a transformação chave/endereço, para localizar a chave no vetor. Esquema: = conjunto de Função hash - :. Pergunta: pode ser uma função injetora? Resposta: quase nunca.(pensar no paradoxo do aniversário.) = conjunto de. = vetor[] = Função hash, transforma chave em endereço em. = vetor[] = Função hash, transforma chave em endereço em Função hash - : - Sinônimos Já que é tão difícil funções injetoras, tem-se que conviver com sinônimos. e são sinônimos To hash = bagunçar, picar. = conjunto de = vetor[] = Função hash, transforma chave em endereço em mas. - Função hash - Propriedades ) Cálculo rápido. ) Gerar endereços na faixa (-) ) Gerar distribuição uniforme de sinônimos ) Não preservar propriedades das chaves e são sinônimos. = conjunto de = vetor[] = Função hash, transforma chave em endereço em

- Função hash - Função hash a) Resto da Divisão:. b) Ou Exclusivo:. = mod +. a.) cálculo rápido a.) gera endereços na faixa a.) gera distribuição uniforme de sinônimos (é periódica com período ) -. a.) preserva sequência(!?) = a + b +. b.) cálculo rápido b.) gera endereços na faixa = p b.) gera distribuição uniforme de sinônimos Exemplo b.) não preserva sequência(!?) - Função hash - Função hash c) Função de ultiplicação: = (.b mod R) mod +. c.) cálculo rápido c.) gera endereços na faixa c.) pode gerar distribuição uniforme de sinônimos. Depende de R, b,. R =, =, b = c.) não preserva sequência. d) Outras Funções hash d.) Dobradura d.) etade do quadrado d.) Seleção de partes da chave d.) Segredos industriais.. ÉTOS. ) Encadeamento Exterior ) Encadeamento Interior (Listas coligadas) ) Endereçamento aberto ) Endereçamento aberto com duplo hashing ) Encadeamento Exterior I I

) Encadeamento Exterior ) Encadeamento Exterior I I I I ) Encadeamento Exterior ) Encadeamento Exterior I I Busca(, i, p): p [i]; Enquanto (p Nulo) e (p.c ): p p.prox; i ; Busca(, i, p); Se (p = Nulo) Então: Alocar(p); p.c ; p.prox [i]; [i] p; I ) Encadeamento Exterior - Análise ) Encadeamento Exterior - Análise elhor caso médio: = elhor caso médio: =

) Encadeamento Exterior - Análise da Busca ) Encadeamento Interior (listas coligadas) elhor caso médio: = Caso médio (média): = N(+α/) α = N/ = fator de carga. α. Idéia: criar listas encadeadas de sinônimos para cada endereço do vetor, no próprio vetor. I I ) Encadeamento Interior (listas coligadas) Busca(, ant, p): p ; ant p; Enquanto ([p].prox Nulo) e ([p].c ): ant p; p [p].prox; Se ([p].c ) Então p Nulo; Busca(, ant, p); Se (p = Nulo) e (n < ) Então: Se ([ant].c = ) Então p ant; [p].c ; Senão j Next(ant); [j].c ; [ant].prox j; p j; n n+; I ) Encadeamento Interior - Análise elhor caso médio: = ) Encadeamento Interior - Análise ) Encadeamento Exterior - Análise da Busca elhor caso médio: = m K m- - - elhor caso médio: = Caso médio (média): = N(+.α) α = N/ = fator de carga. m K m- - α

Exercício: Criar as tabelas hashing para Encadeamento Interior/Exterior, usando como entrada o IXSTRING, = e h(letra) = Pos(letra) od +. Calcular para cada tabela. ) Endereçamento Aberto Idéia: usar apenas um vetor, sem lins e colocar sinônimos em outra posição. ma das formas é procurar, circularmente, a próxima posição disponível. I I = (++++++)/= / ) Endereçamento aberto ) Endereçamento aberto - Análise Busca(, ant, p): p ; ant p; Enquanto ([p] Nulo) e ([p] ): ant p; p p mod + ; Se ([p] = Nulo) Então p Nulo; Busca(, ant, p); Se (p = Nulo) e (n < -) Então: [ant] ; p ant; I elhor caso médio: = ) Endereçamento aberto - Análise ) Endereçamento aberto - Análise elhor caso médio: = elhor caso médio: = Caso médio (média): = p/ α =. α = N/ = fator de carga α.

) Endereçamento Aberto com duplo hash Idéia: usar uma segunda função para determinar os saltos na busca de espaço. h () h () I I = (++++++)/= / ) Endereçamento aberto com duplo hashing Busca(, ant, p): p h (); ant p; s h (); Enquanto ([p] Nulo) e ([p] ): ant p; p (p+s-) mod + ; Se ([p] = Nulo) Então p Nulo; Busca(, ant, p); Se (p = Nulo) e (n < -) Então: [ant] ; p ant; I ) Endereçamento Aberto com duplo hash ) Endereçamento Aberto com duplo hash Requisito importante para h (): h () h () I I Requisito importante para h (): relativamente primos a!! h () h () I I gerar números Exemplos: a) ímpar e h () = mod b) primo e h () = mod - + ) Endereçamento aberto com duplo hash - Análise ) Endereçamento aberto com duplo hash - Análise elhor caso médio: = elhor caso médio: =

) Endereçamento aberto com duplo hash - Análise elhor caso médio: = Caso médio (média): = p/ α =. α = N/ = fator de carga Exercício: Criar as tabelas hashing para Endereçamento aberto simples e com duplo hash, usando como entrada o IXSTRING, = e h(letra) = Pos(letra) od +. Calcular para cada tabela. α. Fim