Capítulo VIII. Tipo Abstracto de Dados Dicionário. Acesso por Chave
|
|
- Ângela Mendes Barbosa
- 7 Há anos
- Visualizações:
Transcrição
1 Capítulo VIII Tipo Abstracto de Dados Dicionário Acesso por Chave Margarida Mamede, DI FCT/UNL AED, 2009/10, Capítulo VIII 1
2 Interface Dicionário (K,V) (1) package datastructures; public interface Dictionary<K,V> // Returns true iff the dictionary contains no entries. boolean isempty( ); // Returns the number of entries in the dictionary. int size( ); // Returns an iterator of the entries in the dictionary. Iterator<Entry<K,V>> iterator( ); Margarida Mamede, DI FCT/UNL AED, 2009/10, Capítulo VIII 2
3 Interface Dicionário (K,V) (2) // Returns the value in the dictionary whose key is the specified // key; or null if no such entry exists. V find( K key ); // Inserts the entry (key, value) in the dictionary. // If the dictionary already contained an entry with the specified // key, returns the old value (which is replaced by the specified // value); otherwise, returns null. V insert( K key, V value ); // Removes the entry whose key is the specified key from the // dictionary and returns the associated value, if such entry // exists. Otherwise, returns null. V remove( K key ); } // End of Dictionary. Margarida Mamede, DI FCT/UNL AED, 2009/10, Capítulo VIII 3
4 Interface Entrada (K,V) package datastructures; public interface Entry<K,V> // Returns the key in the entry. K getkey( ); } // Returns the value in the entry. V getvalue( ); Margarida Mamede, DI FCT/UNL AED, 2009/10, Capítulo VIII 4
5 Listas Ligadas (simples ou duplas, sem repetições) Não Ordenadas Ordenadas Pesquisa com sucesso n/2 O(n) n/2 O(n) sem sucesso n O(n) n/2 O(n) Inserção com sucesso n O(n) n/2 O(n) sem sucesso n/2 O(n) n/2 O(n) Remoção com sucesso n/2 O(n) n/2 O(n) sem sucesso n O(n) n/2 O(n) Percurso simples n O(n) n O(n) ordenado O(n log n) n O(n) n: número de entradas do dicionário. Coluna 1: número médio de células visitadas. Coluna 2: complexidade no pior caso e no caso esperado. Margarida Mamede, DI FCT/UNL AED, 2009/10, Capítulo VIII 5
6 Tabela de Dispersão [Luhn 1953, vários ] dispersão : K 0, 1, 2,..., dim 1} dispersão(k) = i k, v 0 i dim 1 Operações Suportadas: Pesquisa, Inserção, Remoção. Complexidade ideal : O(1) Problema (das Colisões) Se #K > dim, existem k 1, k 2 K tais que: k 1 k 2 e dispersão(k 1 ) = dispersão(k 2 ). Margarida Mamede, DI FCT/UNL AED, 2009/10, Capítulo VIII 6
7 Função de Dispersão Objectivos Deve ser eficiente. Deve distribuir as chaves uniformemente por todas as posições da tabela. Regras Práticas A função de dispersão deve ser simples. A dimensão da tabela (dim) deve ser um número primo. Se as chaves são grandes, deve-se considerar apenas uma parte, oriunda de vários pontos. Margarida Mamede, DI FCT/UNL AED, 2009/10, Capítulo VIII 7
8 Cálculo da Função de Dispersão (2 passos) Passo 1: Cada chave sabe calcular o seu código de dispersão. public int hashcode( ); Passo 2: A tabela de dispersão converte o código de dispersão da chave num índice da tabela. Math.abs( key.hashcode() ) % table.length Exemplos de Códigos de Dispersão: Se a chave é um número inteiro n: n. Se a chave é uma cadeia de caracteres s 0 s 1 s n 1 : s 0 + s s n 1 ; (s 0 a n 1 + s 1 a n s n 1 ) % b (com a e b primos). Margarida Mamede, DI FCT/UNL AED, 2009/10, Capítulo VIII 8
9 Regra de Horner (1) códigodisp(s 0 s 1 s n 1 ) = (s 0 a n 1 + s 1 a n s n 1 ) % b v 0; v ( v a + s 0 ) % b = ( s 0 ) % b v ( v a + s 1 ) % b = ( s 0 a + s 1 ) % b v ( v a + s 2 ) % b = ( s 0 a 2 + s 1 a + s 2 ) % b v ( v a + s 3 ) % b = ( s 0 a 3 + s 1 a 2 + s 2 a + s 3 ) % b Margarida Mamede, DI FCT/UNL AED, 2009/10, Capítulo VIII 9
10 Regra de Horner (2) códigodisp(s 0 s 1 s n 1 ) = (s 0 a n 1 + s 1 a n s n 1 ) % b public static int hash( String key ) int a = 127; // a is a prime number. int b = ; // b is a prime number. int hashcode = 0; for ( int i = 0; i < key.length(); i++ ) hashcode = ( hashcode * a + key.charat(i) ) % b; } return hashcode; Margarida Mamede, DI FCT/UNL AED, 2009/10, Capítulo VIII 10
11 Dispersão Aberta (Separate Chaining) Criar: Criar o vector de listas ligadas (do tipo dicionário) e criar todas as listas de colisões (que podem ser simples ou duplas, ordenadas ou desordenadas). Pesquisar k: Pesquisar k no dicionário dispersão(k). Inserir k, v: Inserir k, v no dicionário dispersão(k). Remover k: Remover k do dicionário dispersão(k). Margarida Mamede, DI FCT/UNL AED, 2009/10, Capítulo VIII 11
12 Complexidade da Dispersão Aberta Sejam: n o número de entradas na tabela dim a dimensão da tabela Factor de Ocupação da tabela λ: λ = n dim (λ é o comprimento médio das listas de colisões.) Nota importante: λ deve ser sempre inferior a 1. Pesquisa Melhor Caso Pior Caso Caso Esperado com sucesso O(1) O(n) O(1 + λ) sem sucesso O(1) O(n) O(1 + λ) Margarida Mamede, DI FCT/UNL AED, 2009/10, Capítulo VIII 12
13 Classe Abstracta Tabela de Dispersão (1) package datastructures; public abstract class HashTable<K,V> implements Dictionary<K,V> // Default size of the hash table. protected static final int DEFAULT CAPACITY = 50; // Number of entries in the hash table. protected int currentsize; // Maximum number of entries. protected int maxsize; Margarida Mamede, DI FCT/UNL AED, 2009/10, Capítulo VIII 13
14 Classe Abstracta Tabela de Dispersão (2) // Public Static Methods // Returns the hash code of the specified key, // which is an integer in the range 0,..., b-1. public static int hash( String key ) int a = 127; // a is a prime number. int b = ; // b is a prime number. int hashcode = 0; for ( int i = 0; i < key.length(); i++ ) hashcode = ( hashcode * a + key.charat(i) ) % b; } return hashcode; Margarida Mamede, DI FCT/UNL AED, 2009/10, Capítulo VIII 14
15 Classe Abstracta Tabela de Dispersão (3) // Protected Static Methods // Returns a prime number that is not less than the specified number; // or zero if all such primes are greater than Integer.MAX VALUE. protected static int nextprime( int number ) for ( int i = 0; i < PRIMES.length; i++ ) if ( PRIMES[i] >= number ) return PRIMES[i]; return 0; } protected static final int[] PRIMES = 11, 19, 31, 47, 73,..., , }; Margarida Mamede, DI FCT/UNL AED, 2009/10, Capítulo VIII 15
16 Classe Abstracta Tabela de Dispersão (4) // Public Instance Methods // Returns true iff the dictionary contains no entries. public boolean isempty( ) return currentsize == 0; } // Returns the number of entries in the dictionary. public int size( ) return currentsize; } Margarida Mamede, DI FCT/UNL AED, 2009/10, Capítulo VIII 16
17 Classe Abstracta Tabela de Dispersão (5) // Returns the value in the dictionary whose key is the specified // key; or null if no such entry exists. public abstract V find( K key ); // Inserts the entry (key, value) in the dictionary. // If the dictionary already contained an entry with the specified // key, returns the old value (which is replaced by the specified // value); otherwise, returns null. public abstract V insert( K key, V value ); // Removes the entry whose key is the specified key from the // dictionary and returns the associated value, if such entry // exists. Otherwise, returns null. public abstract V remove( K key ); // Returns an iterator of the entries in the dictionary. public abstract Iterator<Entry<K,V>> iterator( ); Margarida Mamede, DI FCT/UNL AED, 2009/10, Capítulo VIII 17
18 Classe Abstracta Tabela de Dispersão (6) // Protected Instance Methods // Returs true iff the hash table cannot contain more entries. protected boolean isfull( ) return currentsize == maxsize; } } // End of HashTable. Margarida Mamede, DI FCT/UNL AED, 2009/10, Capítulo VIII 18
19 Classe Tabela de Dispersão Aberta (1) package datastructures; public class SepChainHashTable<K extends Comparable<K>, V> extends HashTable<K,V> // The array of dictionaries. protected Dictionary<K,V>[] table; public SepChainHashTable( ) this(default CAPACITY); } Margarida Mamede, DI FCT/UNL AED, 2009/10, Capítulo VIII 19
20 Classe Tabela de Dispersão Aberta (2) public SepChainHashTable( int capacity ) int arraysize = HashTable.nextPrime((int) (1.1 * capacity)); // Compiler gives a warning. table = (Dictionary<K,V>[]) new Dictionary[arraySize]; for ( int i = 0; i < arraysize; i++ ) table[i] = new OrderedDoublyLL<K,V>(); maxsize = capacity; } currentsize = 0; Margarida Mamede, DI FCT/UNL AED, 2009/10, Capítulo VIII 20
21 Classe Tabela de Dispersão Aberta (3) // Returns the hash value of the specified key. protected int hash( K key ) return Math.abs( key.hashcode() ) % table.length; } // Returns the value in the dictionary whose key is the specified // key; or null if no such entry exists. public V find( K key ) return table[ this.hash(key) ].find(key); } Margarida Mamede, DI FCT/UNL AED, 2009/10, Capítulo VIII 21
22 Classe Tabela de Dispersão Aberta (4) // Inserts the entry (key, value) in the dictionary. // If the dictionary already contained an entry with the specified // key, returns the old value (which is replaced by the specified // value); otherwise, returns null. public V insert( K key, V value ) if ( this.isfull() ) this.rehash(); } // Efectua-se a inserção } // End of SepChainHashTable. Margarida Mamede, DI FCT/UNL AED, 2009/10, Capítulo VIII 22
23 Dispersão Fechada (Open Addressing) dispersão : K 0, 1, 2,..., dim 1} dispersão(k) = i k, v dispersão(k ) = i 0 i dim 1 Na pesquisa da chave k, quando a posição da tabela indicada pela função de dispersão dispersão(k ) já está ocupada com uma entrada cuja chave é diferente de k, recorre-se a uma segunda função a função de sondagem que indica outra posição da tabela. Visitam-se as posições p 0 (k ), p 1 (k ), p 2 (k ),... tais que: p j (k ) = ( dispersão(k ) + sondagem(j) ) % dim tendo-se sempre sondagem(0) = 0. Margarida Mamede, DI FCT/UNL AED, 2009/10, Capítulo VIII 23
24 Sondagem Linear (Linear Probing) sondagem(j) = j sondagem(0) = 0 p 0 = ( dispersão(k) + 0 ) % dim sondagem(1) = 1 p 1 = ( dispersão(k) + 1 ) % dim sondagem(2) = 2 p 2 = ( dispersão(k) + 2 ) % dim sondagem(3) = 3 p 3 = ( dispersão(k) + 3 ) % dim Primeira Posição: pos dispersão(k); } Posição Seguinte: pos (pos + 1) % dim; } Margarida Mamede, DI FCT/UNL AED, 2009/10, Capítulo VIII 24
25 Sondagem Linear Exemplo dim = 7 e dispersão(n) = n % dispersão(5) = 5 dispersão(24) = 3 dispersão(39) = dispersão(11) = 4 dispersão(10) = Margarida Mamede, DI FCT/UNL AED, 2009/10, Capítulo VIII 25
26 Sondagem Linear PROBLEMAS Existência de blocos contíguos de posições ocupadas de grandes dimensões (em geral, quando λ 0.5). A sondagem é igual para chaves que colidem. Margarida Mamede, DI FCT/UNL AED, 2009/10, Capítulo VIII 26
27 Dispersão Dupla (Double Hashing) sondagem(j) = j dispersão2(k) O incremento varia com a chave, sendo definido pela segunda função de dispersão. p 0 = ( dispersão(k) + 0 ) % dim p 1 = ( dispersão(k) + dispersão2(k) ) % dim p 2 = ( dispersão(k) + 2 dispersão2(k) ) % dim p 3 = ( dispersão(k) + 3 dispersão2(k) ) % dim Primeira Posição: pos dispersão(k); inc dispersão2(k); } Posição Seguinte: pos ( pos + inc ) % dim; } Margarida Mamede, DI FCT/UNL AED, 2009/10, Capítulo VIII 27
28 Objectivos Dispersão Dupla Segunda Função de Dispersão Não pode retornar zero. Deve retornar números que sejam primos com dim. Se dim for primo, basta garantir que os valores retornados variam entre 1 e dim 1. Margarida Mamede, DI FCT/UNL AED, 2009/10, Capítulo VIII 28
29 Dispersão Fechada Nota Importante Para garantir que o ciclo de pesquisa termina, é necessário assegurar a existência de posições vazias. Sondagem λ Ideal λ Máximo Linear Dupla Portanto, deve-se pré-dimensionar a tabela tendo em vista o factor de ocupação ideal, permitindo inserções apenas enquanto não for atingido o factor de ocupação máximo. Margarida Mamede, DI FCT/UNL AED, 2009/10, Capítulo VIII 29
30 Dimensionamento da Dispersão Fechada Por exemplo, se o número esperado de entradas for 50, a dimensão da tabela deve ser 101 (o menor número primo superior a ) e só se permite a inserção de 80 entradas (porque = 80.8). Quando se tenta inserir a 81 a entrada, efectua-se a redispersão, copiando as 80 entradas existentes para uma tabela maior (que, em geral, tem o dobro da capacidade) e insere-se a nova entrada na nova tabela. Margarida Mamede, DI FCT/UNL AED, 2009/10, Capítulo VIII 30
31 Sondagem Linear / Só Pesquisas e Inserções (1) package datastructures; public class LinProbHashTable<K extends Comparable<K>, V> extends HashTable<K,V> // The array of entries. protected EntryClass<K,V>[] table; public LinProbHashTable( ) this(default CAPACITY); } Margarida Mamede, DI FCT/UNL AED, 2009/10, Capítulo VIII 31
32 Sondagem Linear / Só Pesquisas e Inserções (2) public LinProbHashTable( int capacity ) int arraysize = HashTable.nextPrime(2 * capacity); // Compiler gives a warning. table = (EntryClass<K,V>[]) new EntryClass[arraySize]; maxsize = ( 8 * arraysize ) / 10; currentsize = 0; } // Returns the hash value of the specified key. protected int hash( K key ) return Math.abs( key.hashcode() ) % table.length; } Margarida Mamede, DI FCT/UNL AED, 2009/10, Capítulo VIII 32
33 Sondagem Linear / Só Pesquisas e Inserções (3) // Returns the position where the entry with the specified key is, // or the first empty position found, if no such entry exists. protected int findpos( K key ) int pos = this.hash(key); while ( table[pos]!= null && table[pos].getkey().compareto(key)!= 0 ) pos = ( pos + 1 ) % table.length; } return pos; Margarida Mamede, DI FCT/UNL AED, 2009/10, Capítulo VIII 33
34 Sondagem Linear / Só Pesquisas e Inserções (4) // Returns the value in the dictionary whose key is the specified // key; or null if no such entry exists. public V find( K key ) int pos = this.findpos(key); if ( table[pos] == null ) return null; else return table[pos].getvalue(); } Margarida Mamede, DI FCT/UNL AED, 2009/10, Capítulo VIII 34
35 Sondagem Linear / Só Pesquisas e Inserções (5) // Inserts the entry (key, value) in the dictionary. // If the dictionary already contained an entry with the specified // key, returns the old value (which is replaced by the specified // value); otherwise, returns null. public V insert( K key, V value ) if ( this.isfull() ) this.rehash(); } int pos = this.findpos(key); if ( table[pos] == null )... else } // End of LinProbHashTable. Margarida Mamede, DI FCT/UNL AED, 2009/10, Capítulo VIII 35
36 Sondagem Linear / Só Pesquisas e Inserções (6) // Expansão do if-then-else. int pos = this.findpos(key); if ( table[pos] == null ) table[pos] = new EntryClass<K,V>(key, value); currentsize++; return null; } else V oldvalue = table[pos].getvalue(); table[pos].setvalue(value); return oldvalue; } Margarida Mamede, DI FCT/UNL AED, 2009/10, Capítulo VIII 36
37 Complexidade da Sondagem Aleatória no Caso Esperado Pesquisa com Insucesso 1 λ probabilidade de visitar 1 posição λ (1 λ) probabilidade de visitar 2 posições λ 2 (1 λ) probabilidade de visitar 3 posições λ k 1 (1 λ) probabilidade de visitar k posições Insucesso(λ) = k=1 k λ k 1 (1 λ) = 1 (1 λ) (1 λ) 2 = 1 1 λ Margarida Mamede, DI FCT/UNL AED, 2009/10, Capítulo VIII 37
38 Complexidade da Sondagem Aleatória no Caso Esperado Pesquisa com Sucesso O número de posições visitadas para encontrar uma entrada com chave k é igual ao número de posições visitadas para descobrir que k não existia, no momento em que a entrada foi inserida. Sucesso(λ) = 1 λ λ 0 Insucesso(x) dx = 1 λ λ x dx = 1 λ ln 1 1 λ Margarida Mamede, DI FCT/UNL AED, 2009/10, Capítulo VIII 38
39 Complexidade da Sondagem Aleatória Pesquisa Melhor Caso Pior Caso Caso Esperado com sucesso 1 n sem sucesso 1 n 1 λ ln 1 1 λ 1 1 λ (n é o número de entradas na tabela) Pesquisa Factor de Ocupação no Caso Esperado com sucesso sem sucesso Margarida Mamede, DI FCT/UNL AED, 2009/10, Capítulo VIII 39
40 Complexidade da Sondagem Linear Pesquisa Melhor Caso Pior Caso Caso Esperado com sucesso 1 n sem sucesso 1 n 1 2 ( λ ) 1 2 (1 + 1 (1 λ) 2) (n é o número de entradas na tabela) Pesquisa Factor de Ocupação no Caso Esperado com sucesso sem sucesso Margarida Mamede, DI FCT/UNL AED, 2009/10, Capítulo VIII 40
41 Remoção Exemplo com Sondagem Linear (1) dim = 7 e dispersão(n) = n % Remover 24 9? Margarida Mamede, DI FCT/UNL AED, 2009/10, Capítulo VIII 41
42 Remoção Exemplo com Sondagem Linear (2) dim = 7 e dispersão(n) = n % Remover 24 9 remo vida Inserir 72, v dispersão(72) = 2 Margarida Mamede, DI FCT/UNL AED, 2009/10, Capítulo VIII 42
43 Remoção Exemplo com Sondagem Linear (3) dim = 7 e dispersão(n) = n % Remover 24 9 remo vida Inserir 72, v dispersão(72) = Margarida Mamede, DI FCT/UNL AED, 2009/10, Capítulo VIII 43
44 Ciclos com Remoção Pesquisar k: O ciclo termina quando se encontra k (S) ou uma posição VAZIA (I). Remover k: O ciclo termina quando se encontra k (S) ou uma posição VAZIA (I). (S): Assinala-se que a posição está REMOVIDA. Inserir k, v: O primeiro ciclo termina quando se encontra k (I), uma posição VAZIA (S) ou uma posição REMOVIDA (R). (S): Insere-se k, v nessa posição. (R): Guarda-se essa posição (posiç~ao-se-inserir) e executa-se o segundo ciclo. O segundo ciclo termina quando se encontra k (I) ou uma posição VAZIA (S). (S): Insere-se k, v em posiç~ao-se-inserir. Margarida Mamede, DI FCT/UNL AED, 2009/10, Capítulo VIII 44
45 Vantagens da Dispersão Aberta em relação à Dispersão Fechada + Suporta a operação de remoção. + Os diferentes conjuntos de chaves que colidem (as listas de colisões ) não se misturam. Vantagens da Dispersão Fechada em relação à Dispersão Aberta Gasta menos memória (alguns bytes por entrada). Margarida Mamede, DI FCT/UNL AED, 2009/10, Capítulo VIII 45
46 Vantagens da Dispersão + A complexidade das operações de pesquisa e de inserção (e de remoção, na DA), no caso esperado, é constante. A técnica é eficiente e só depende do factor de ocupação e da qualidade das funções (dispersão, sondagem (na DF)). Problemas da Dispersão + Não é uma estrutura dinâmica. + Não suporta operações que se baseiem na relação de ordem entre as chaves: mínimo, máximo, percurso ordenado. A complexidade das operações de pesquisa e de inserção (e de remoção, na DA), no pior caso, é linear no número de entradas na tabela. Margarida Mamede, DI FCT/UNL AED, 2009/10, Capítulo VIII 46
ALGORITMOS E ESTRUTURAS DE DADOS 2011/2012 DICIONÁRIO. Armanda Rodrigues 6 de Outubro 2011
ALGORITMOS E ESTRUTURAS DE DADOS 2011/2012 DICIONÁRIO Armanda Rodrigues 6 de Outubro 2011 2 Guardar todos os documentos da biblioteca Vamos voltar ao nosso exemplo da biblioteca Os utilizadores do sistema
Leia maisTabelas de Dispersão. Estrutura de Dados e Algoritmos
Tabelas de Dispersão Tabelas de Dispersão Sumário Definição. Características. Resolução de colisões: dispersão com listas e dispersão aberta. Teste quadrático. Desempenho de tabelas de dispersão. Interface
Leia maisTabelas 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 maispior caso nas operações de manipulação é O(N) pior caso surge sistematicamente emusos correntes (ex: elementos previamente ordenados)
Tabelas de Dispersão (Hash( Tables) 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
Leia maisTabelas de Dispersão. Algoritmos e Estruturas de Dados Verão Cátia Vaz 1
Tabelas de Dispersão Algoritmos e Estruturas de Dados Verão 2012 1 Tabelas de endereçamento directo Endereçamento directo é usado quando o universo de chaves é pequeno e todas as chaves são distintas:
Leia maisAgenda. Ideia. Buscar um item em um array. Função hash. Função hash. Hash Table. Introdução Definição Hash Table. Métodos de resolução de conflitos
Agenda joao@uefs.br Introdução Definição função hash Kpo abstrato de dados Métodos de resolução de conflitos lista encadeada endereçamento aberto Departamento de Ciências Exatas niversidade Estadual de
Leia maisAlgoritmos de pesquisa. Tabelas de dispersão/hash
Algoritmos de pesquisa Tabelas de dispersão/hash Introdução Motivação: Considerar o problema de pesquisar um determinado valor num vetor. Se o vetor não está ordenado, a pesquisa requer O(n) de complexidade.
Leia maiscapta a noção elementar de ordemde chegada no processamento de tarefas, além da ordem de chegada é típico atender à prioridade
Fila de Prioridade (1) Fila capta a noção elementar de ordemde chegada no processamento de tarefas, além da ordem de chegada é típico atender à prioridade Fila de prioridade objectos na fila têmum número
Leia maisTABELAS DE DISPERSÃO/HASH
1/47 TABELAS DE DISPERSÃO/HASH 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
Leia maisLista Ligada. Nó de Lista Ligada
Lista Ligada Estrutura com nós que armazenam elementos manter referências para elementos do início e fim da lista Operações Inserir: a seguir à posição corrente Remover: na posição corrente Pesquisar:
Leia maisTAD dicionário. Métodos do TAD dicionário:
TAD dicionário O TAD dicionário modela uma coleção buscável de itens chave-elemento As principais operações em dicionários são busca, inserção e remoção de itens Vários itens com a mesma chave são permitidos
Leia maisESTRUTURAS 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 É
Leia maisTabelas Hash O Que é uma Tabela Hash? O Que é uma Tabela Hash? O Que é uma Tabela Hash? Inserindo um Novo Registro. O Que é uma Tabela Hash?
Tabelas Hash O Que é uma Tabela Hash? Nesta aula são discutidos modos de armazenar informações em um vetor, e depois procurar por uma informação Tabelas Hash constituem uma abordagem comum para o problema
Leia maisAlgoritmos e Estruturas de Dados 2008/2009
Algoritmos e Estruturas de Dados 2008/2009 Tabela de dispersão Uma tabela de dispersão é um vector de tamanho fixo em que os elementos são colocados em na posição determinada por uma função denominada
Leia maisAlgoritmos e Estruturas de Dados 2005/2006
Tabelas de dispersão Algoritmos e Estruturas de Dados 2005/200 Tabela de dispersão Uma tabela de dispersão é um vector de tamanho fixo em que os elementos são colocados em na posição determinada por uma
Leia maisTabelas de Hash MBB. Novembro de Algoritmos e Complexidade LEI-LCC
Tabelas de Hash Algoritmos e Complexidade LEI-LCC 2010-2011 MBB Novembro de 2010 Tabelas e Acesso a Informação As estruturas de dados apresentadas anteriormente têm como objectivo o armazenamento de informação,
Leia maisAED 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
Leia maisTabelas de símbolos e de distribuição AULA 23. Tabela de símbolos. Um exemplo simples. Interface
Tabelas de símbolos e de distribuição AULA 23 Fonte: http://programmingnotes.freeweq.com S 12.4, 12.5, 12.8, 14.1, 14.2 http://www.ime.usp.br/ pf/.../symbol-table.html http://www.ime.usp.br/ pf/.../symb-table.html
Leia maisESTRUTURAS DE DADOS E ALGORITMOS LISTA LIGADA
ESTRUTURAS DE DADOS E ALGORITMOS 1 LISTA LIGADA Adalberto Cajueiro Departamento de Sistemas e Computação Universidade Federal de Campina Grande LISTA LIGADA (LINKED LIST) É uma estrutura de dados em que
Leia maisExercício de Estrutura de dados. Java Fila
Exercício de Estrutura de dados Java Fila Obs.: Esse projeto foi um exercício realizado em sala de aula da matéria de Estrutura de dados com o Profº Frederico Augusto Siqueira Gentil Aqui está sendo relatado
Leia maisTabelas de dispersão
Tabelas de dispersão FEUP - MIEEC Programação 2-2008/2009 Tabelas de dispersão Uma tabela de dispersão é um vector de tamanho fixo em que os elementos são colocados na posição determinada por uma função
Leia maisMatemática Discreta 12
Universidade Federal do Vale do São Francisco Curso de Engenharia da Computação Matemática Discreta 12 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br - www.univasf.edu.br/~jorge.cavalcanti 1 Introdução
Leia maisProva 2 PMR3201 1o. semestre 2015 Prof. Thiago Martins
Prova PMR0 o semestre 0 Prof Thiago Martins Instruções: Escreva o nome e o número USP na folha de papel almaço ( pontos) Uma árvore binária de busca é uma árvore binária na qual para qualquer sub-árvore
Leia maisESTRUTURAS DE DADOS E ALGORITMOS LISTA LIGADA (ABORDAGEM RECURSIVA)
ESTRUTURAS DE DADOS E ALGORITMOS 1 LISTA LIGADA (ABORDAGEM RECURSIVA) Adalberto Cajueiro Departamento de Sistemas e Computação Universidade Federal de Campina Grande QUESTÕES DE IMPLEMENTAÇÃO Implementacao
Leia maisTabela Hash. Disciplina de Algoritmos e Estrutura de Dados III. Prof. Marcos Antonio Schreiner 15/05/2015
Tabela Hash Disciplina de Algoritmos e Estrutura de Dados III Prof. Marcos Antonio Schreiner 15/05/2015 Introdução Seja um conjunto de chaves armazenadas em um vetor e em uma árvore AVL. Qual a complexidade
Leia maisUNIVERSIDADE DA BEIRA INTERIOR
UNIVERSIDADE DA BEIRA INTERIOR Programação II 1º Semestre Frequência 2 Resolução 07/01/2019 1. [1,25 val] - Análise de Complexidade dos Algoritmos Considere o seguinte bloco de código em linguagem C: for
Leia maisDicionários. TAD Orientado a conteúdo
Dicionários TAD Orientado a conteúdo Dicionários efinição: Tipo abstrato de dados orientado a onteúdo. Contrasta com as PILHAs e FILAs que são orientadas a posição. perações implementadas: Inserir(d,x)
Leia maisTabelas 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 maisProva 2 PMR3201 1o. semestre 2016 Prof. Thiago Martins
Prova 2 PMR3201 1o. semestre 2016 Prof. Thiago Martins Instruções: Escreva o nome e o número USP na folha de papel almaço. Os códigos fornecidos na seção Códigos-fonte de apoio podem ser referenciados
Leia maisUNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 5 Pilhas
UNIP - Ciência da Computação e Sistemas de Informação Estrutura de Dados AULA Pilhas Estrutura de Dados A Estrutura de Dados Pilha Pilha é uma estrutura de dados usada em programação, que tem uma regra
Leia maisProgramação Estruturada e Orientada a Objetos
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Programação Estruturada e Orientada a Objetos Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br
Leia maisTabelas de dispersão/hash
Tabelas de dispersão/hash 1 Tabelas de dispersão/hash 1. Considere uma tabela de hash de tamanho m = 1000 e a função de hash h(k)= [m.(k.a % 1)], com A=( 5-1)/2. Calcule os valores de hash das chaves 61,
Leia maisColeções em Java. Prof. Gustavo Willam Pereira ENG10082 Programação II. Créditos: Prof. Clayton Vieira Fraga Filho
Coleções em Java Prof. Gustavo Willam Pereira ENG10082 Programação II Créditos: Prof. Clayton Vieira Fraga Filho Introdução O que é uma coleção? Um objeto que agrupa múltiplos elementos em uma única unidade
Leia maisVamos considerar um arquivo de dados que armazena uma lista de alunos. Cada registro é um objeto com um número de matrícula e um nome.
Tabelas de dispersão Vamos considerar um arquivo de dados que armazena uma lista de alunos. Cada registro é um objeto com um número de matrícula e um nome. A tabela está sujeita a dois tipos de operação:
Leia maisFilas de prioridade. Algoritmos e Estruturas de Dados AED 2005/2006 AEDA 2009/2010
Filas de prioridade Algoritmos e Estruturas de Dados AED 2005/2006 AEDA 2009/2010 Qual a Utilidade das Filas de Prioridade? Trabalhos maiores devem ser executados no fim (mesmo que não tenha sido o último
Leia maisHashing. Cormen Capítulo 11
Hashing Cormen Capítulo 11 Motivação Um compilador utiliza uma tabela de símbolos para relacionar símbolos aos dados associados. Símbolos: nomes de variáveis, funções, etc.. Dados associados: localização
Leia maisListas Lineares Ordenadas
Listas Lineares Ordenadas Algoritmos e Estruturas de Dados I Nesta apresentação será apresentado o ADT lista linear ordenada Uma lista linear ordenada, ou simplesmente lista ordenada há uma ordem entre
Leia maisJava Util Collections - Interfaces Interfaces definidas
Java Util Collections - Interfaces Interfaces definidas 245 Collection Raiz da hierarquia Grupo mais genérico de elementos Não garante nas implementações Duplicatas Ordenação Não possui nenhuma implementação
Leia maisTeste à Primalidade. (Método de Monte Carlo) Geração de Números Primos (Grandes)
Teste à Primalidade (Método de Monte Carlo) Margarida Mamede, DI FCT/UNL APD, 2010/11, Teste à Primalidade 1 Geração de Números Primos (Grandes) Como se pode obter um número primo grande? Gerando números
Leia maisHashing: conceitos. Hashing
Hashing: conceitos hashing é uma técnica conhecida como espalhamento, mapeamento ou randomização que tenta distribuir dados em posições aleatórias de uma tabela (array) associa cada objeto (de um determinado
Leia maisIntrodução aos Algoritmos e Estruturas de Dados. 2 o Teste - A
Ano Lectivo 2017/2018 2 o Semestre Introdução aos Algoritmos e Estruturas de Dados 2 o Teste - A Data: 20 de Junho de 2018 Duração: 1h30m RESOLUÇÃO I. (2,0 + 2,0 + 2,0 + 2,0 = 8,0 val.) I.a) Considere
Leia maisEstrutura de Dados Listas
Universidade Federal da Paraíba Centro de Informática Departamento de Informática Estrutura de Dados Listas 1 Tiago Maritan tiago@ci.ufpb.br Conteúdos Abordados O Conceito de Listas Listas com Representação
Leia maisListas Lineares. continuando...
Listas Lineares continuando... 1 Listas! relembrando: listas lineares agrupa informações referentes aum conjunto de elementos que, de alguma forma, se relacionam entre si! Uma lista linear ou está vazia,
Leia maisESTRUTURAS DE DADOS E ALGORITMOS ÁRVORE BINÁRIA
ESTRUTURAS DE DADOS E ALGORITMOS 1 ÁRVORE BINÁRIA Adalberto Cajueiro Departamento de Sistemas e Computação Universidade Federal de Campina Grande ÁRVORE (EXEMPLO) Como seria pesquisar a localização de
Leia maisInterfaces POO. Prof. Marcio Delamaro
Interfaces POO Prof. Marcio Delamaro Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 1/41 O que é interface É um template de classe Outras classes podem seguir esse template Chamamos isso
Leia maisColeções. João Paulo Q. dos Santos
Coleções João Paulo Q. dos Santos joao.queiroz@ifrn.edu.br Roteiro Conceitos sobre coleções; Tipos de coleções; Como são classificadas; Exemplos. 04/02/14 2 Coleções Classes e interfaces do pacote java.util
Leia maisTabelas Hash. informação, a partir do conhecimento de sua chave. Hashing é uma maneira de organizar dados que:
Tabelas Hash Tabelas Hash O uso de listas ou árvores para organizar informações é interessante e produz bons resultados. Porem, em nenhuma dessas estruturas se obtém o acesso direto a alguma informação,
Leia maisUniversidade de Mogi das Cruzes Implementação Orientada a Objetos - Profª. Danielle Martin. Guia da Sintaxe do Java
Guia da Sintaxe do Java TIPOS PRIMITIVOS DE DADOS DO JAVA São os tipos nativos de dados do Java, que podem ser usados na declaração de atributos, variáveis, parâmetros. Tipo primitivo Tamanho Valor padrão
Leia maisAlgoritmos e Estruturas de Dados: Tabela de Dispersão com Encadeamento
Algoritmos e Estruturas de Dados: Tabela de Dispersão com Encadeamento Rômulo Silva de Oliveira Departamento de Automação e Sistemas DAS UFSC romulo@das.ufsc.br http://www.das.ufsc.br/~romulo Maio/011
Leia maisProgramação Orientada a Objetos
Programação Orientada a Objetos Engenharia da Computação Professor: Rosalvo Ferreira de Oliveira Neto Dados Pessoais Rosalvo Ferreira de Oliveira Neto MSc. em ciência da computação (UFPE) rosalvo.oliveira@univasf.edu.br
Leia maisTabelas de Espalhamento (hash)
Tabelas de Espalhamento (hash) Universidade Federal do Amazonas Departamento de Eletrônica e Computação Hashing Método eficiente de busca com base em assinaturas Objetivos Conceitos Tratamento de Colisões
Leia maisTabelas de hash Acabamos de estudar como implementar uma tabela hashing aberta e estudaremos agora como implementar uma tabela hashing fechada ou
Tabelas de hash Acabamos de estudar como implementar uma tabela hashing aberta e estudaremos agora como implementar uma tabela hashing fechada ou também denominada de tabela hashing com endereçamento aberto.
Leia maisÁrvores Binárias de Pesquisa
Árvores Binárias de Pesquisa (revisões) Algoritmos e Estruturas de Dados II Licenciatura em Engenharia Informática e Computação www.fe.up.pt/ rcamacho/cadeiras/aed2 LIACC/FEUP Universidade do Porto rcamacho@fe.up.pt
Leia maisLinguagem Algorítmica OO. Linguagem Algorítmica
UFSC-CTC-INE INE5384 - Estruturas de Dados Linguagem Algorítmica OO Prof. Ronaldo S. Mello 2002/2 Linguagem Algorítmica Independente de linguagem de programação OO Utilizada para: Exemplificar os algoritmos
Leia maisFilas de prioridade. Marcelo K. Albertini. 3 de Dezembro de 2013
Filas de prioridade Marcelo K. Albertini de Dezembro de / Filas de prioridade O que é uma fila de prioridade? Estrutura de dados que generaliza a ideia de ordenação. Coleções de elementos: inserir e remover
Leia maisFilas de prioridade. Marcelo K. Albertini. 27 de Novembro de 2014
Filas de prioridade Marcelo K. Albertini de Novembro de / Filas de prioridade O que é uma fila de prioridade? Estrutura de dados que generaliza a ideia de ordenação. Coleções de elementos: inserir e remover
Leia maisAlgoritmos e Estruturas de Dados 2005/2006
Filas de prioridade Algoritmos e Estruturas de Dados 2005/2006 Filas de prioridade Uma fila de prioridade permite, pelo menos, duas operações sobre um conjunto de valores comparáveis: inserção de um elemento
Leia maisOrientação a Objetos AULA 09
Orientação a Objetos AULA 09 Prof. Fabrício Martins Mendonça Conteúdo da Aula ü Coleções ü Coleções lista de objetos ü Coleções conjuntos 2 Coleções Podemos armazenar vários objetos em um array e este
Leia maisDicionários. Prof. César Melo
Dicionários Prof. César Melo Definição Estruturas que permitem a recuperação da informação a partir do seu valor; Contrasta com filas e pilhas que é posicional; Três operações: Inserção(k, d), chave k;
Leia maisPilhas e Filas Encadeadas. Algoritmos e Estruturas de Dados I
Pilhas e Filas Encadeadas Algoritmos e Estruturas de Dados I Pilha Lista linear: pilha Represente graficamente o funcionamento da pilha, representando a pilha vazia, a entrada e a saída de elementos Quais
Leia maisTABELA HASH. Prof. André Backes. Princípio de funcionamento dos métodos de busca
TABELA HASH Prof. André Backes Problema 2 Princípio de funcionamento dos métodos de busca Procurar a informação desejada com base na comparação de suas chaves, isto é com base em algum valor que a compõe
Leia maisFILAS. As coisas de que uma fila é feita serão chamadas itens. Os itens podem ser números, strings, structs, etc., etc.
KATIA LIMA FILAS RAFAEL DA SILVA REIAS JEFFERSON DA SILVA OLIVEIRA RAFFAELA LEITE SANTANA EXISTEM MUITOS EXEMPLOS DE FILA NO MUNDO REAL: UMA FILA DE BANCO; NO PONTO DE ÔNIBUS; UM GRUPO DE CARROS AGUARDANDO
Leia maisTabelas de Dispersão - Introdução (1)
Algoritmos e Estruturas de Dados LEE 2013/14 Tabelas de Dispersão Tabelas de Dispersão - Introdução (1) As tabelas de dispersão (hash tables) são estruturas de dados adequadas para: Tabelas de símbolos
Leia maisIntrodução a árvores AVL. Prof. Ernesto Lindstaedt
Introdução a árvores AVL Prof. Ernesto Lindstaedt Definição O nome AVL vem dos seus criadores Adelson Velsky e Landis (1962); Uma ABP T é denominada AVL se: Para todos nós de T,, as alturas de suas duas
Leia maisLista de Exercícios 07 Introdução à Ciência de Computação II (SCC0201/501)
Lista de Exercícios 07 Introdução à Ciência de Computação II (SCC0201/501) Prof. Moacir P. Ponti Jr. 24 de novembro de 2010 1 Hashing 1. Suponha uma tabela hash de tamanho 10 com endereçamento aberto para
Leia maisAula 14 Listas Duplamente Encadeadas. prof Leticia Winkler
Aula 14 Listas Duplamente Encadeadas prof Leticia Winkler 1 Lista Duplamente Encadeada É um tipo de lista encadeada que pode ser vazia (NULL) ou que pode ter um ou mais nós, sendo que cada nó possui dois
Leia maisHashing. 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
Leia maisEdital de Seleção 024/2017 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões
Edital de Seleção 024/2017 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: «Nome» INSCRIÇÃO: «Inscrição» Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome
Leia maisUNIVERSIDADE DA BEIRA INTERIOR
UNIVERSIDADE DA BEIRA INTERIOR Programação II 2º Semestre Frequência 2 (8 valores) Resolução 30/05/2018 A. Análise de complexidade dos algoritmos 1. (0.75 val) Considere a seguinte função em C: void funcao
Leia maisÁrvores B. Hashing. Estrutura de Dados II Jairo Francisco de Souza
Árvores B Hashing Estrutura de Dados II Jairo Francisco de Souza Pesquisa sequencial Procedimento Elementos pesquisados sucessivamente Comparação determina se o elemento foi encontrado ou não Exemplo:
Leia maisTabelas Hash. Também conhecido como tabelas de dispersão. Até agora... MoFvação. Exercício
Tabelas Hash Rohit Gheyi Também conhecido como tabelas de dispersão 1 Até agora Listas Chaves ordenadas ou não Árvores Binárias de Pesquisa Ordenadas Heaps Binárias Chaves com certa ordem MoFvação Estruturas
Leia mais2 Vectores de objectos
2 Vectores de objectos Agenda de contactos 3 Objectivo Manipular uma agenda de contactos. Descrição e Funcionalides Cada contacto na agenda caracteriza-se por um nome, um telefone e um e-mail. Na agenda,
Leia maisAED Algoritmos e Estruturas de Dados LEEC /2007. Tabelas de Dispersão
AED Algoritmos e Estruturas de Dados LEEC - 2006/2007 Tabelas de Dispersão Tabelas de Dispersão - Introdução (1) As tabelas de dispersão (hash tables) são estruturas de dados adequadas para: Tabelas de
Leia maisLEIC-FEUP 2001/2002 Algoritmos e Estruturas de Dados 1. Árvores-1
Sumário Árvores Definições Árvore binária Nó de árvore Implementação Iteradores de árvore pré-ordem, pós-ordem, in-ordem Árvore de pesquisa binária Nó de árvore Implementação Árvore com nível Árvores Conjunto
Leia maisEndereçamento Aberto
Endereçamento Aberto ACH2002 - Introdução à Ciência da Computação II Delano M. Beder Escola de Artes, Ciências e Humanidades (EACH) Universidade de São Paulo dbeder@usp.br 11/2008 Material baseado em slides
Leia maisÁrvores e Mapas. Luís Lopes. Estruturas de Dados DCC-FCUP
Árvores e Mapas Luís Lopes DCC-FCUP Estruturas de Dados Estruturas não lineares Os arrays e as listas são exemplos de estruturas de dados lineares, cada elemento tem: um predecessor único (excepto o primeiro
Leia maisi a[i]
Técnicas de Hashing Outra forma de se fazer busca em uma tabela, é construir-se a tabela de forma a facilitar a busca, colocando-se cada elemento numa posição pré-determinada. Tal posição é obtida aplicando-se
Leia maisTipos, Literais, Operadores
Tipos, Literais, Operadores Identificadores São palavras utilizadas para nomear variáveis, métodos e classes Na linguagem Java, o identificador sempre começa por letra, sublinhado(_) ou cifrão ($) Não
Leia maisTipos, Literais, Operadores
Tipos, Literais, Operadores Identificadores São palavras utilizadas para nomear variáveis, métodos e classes Na linguagem Java, o identificador sempre começa por letra, sublinhado(_) ou cifrão ($) Não
Leia maisSintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc.
Sintaxe Geral Tipos de Dados Comentários Comentários: De linha: // comentário 1 // comentário 2 De bloco: /* linha 1 linha 2 linha n */ De documentação: /** linha1 * linha2 */ Programa Exemplo: ExemploComentario.java
Leia maisImplemente a função de remoção de uma chave na tabela hashing fechada em questão. void remover(tabela tabela, int n) {
Implemente a função de remoção de uma chave na tabela hashing fechada em questão. void remover(tabela tabela, int n) { } Tabelas de hash fechada: Exercício int posicao = buscar(tabela, n); if (posicao
Leia maisÁrvores Binárias de Busca (ABB) 18/11
Árvores Binárias de Busca (ABB) 18/11 Definição Uma Árvore Binária de Busca possui as mesmas propriedades de uma AB, acrescida da seguintes propriedade: Para todo nó da árvore, se seu valor é X, então:
Leia maisProva 2 PMR2300 1o. semestre 2015 Prof. Thiago Martins
Prova PMR00 o. semestre 0 Prof. Thiago Martins Instruções: Escreva o nome e o número USP na folha de papel almaço.. ( pontos) Um heap binário é uma árvore binária completa (todos os níveis exceto o último
Leia mais13 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 maisAlgoritmos e Estruturas de Dados 1
1. Algoritmos e Estruturas de Dados 1 Época Normal - 21 Janeiro 2005 public class Data private int dia, mes, ano; public Data(int d, int m, int dia = d; mes = m; ano = a; public Data(int d, int m) this(d,
Leia maisUNIVERSIDADE DA BEIRA INTERIOR
UNIVERSIDADE DA BEIRA INTERIOR Programação II 2º Semestre Exame Época Norma (15 val) Resolução 22/06/2018 1 [1,00 val + 1,00 val] - Memória Dinâmica Considere as seguintes declarações de variáveis: int
Leia maisFilas. Nesta aula veremos o ADT fila Em um computador existem muitas filas esperando pela impressora, acesso ao disco ou, num sistema timesharing,
Filas Nesta aula veremos o ADT fila Em um computador existem muitas filas esperando pela impressora, acesso ao disco ou, num sistema timesharing, pelo uso da CPU Algoritmos e Estruturas de Dados I José
Leia maisProva de Recuperação PMR3201/PMR2300 1o. semestre 2015 Prof. Thiago Martins
Prova de Recuperação PMR21/PMR2 1o. semestre 2 Prof. Thiago Martins Instruções: screva o nome e o número USP na folha de papel almaço. 1. (2 pontos) Uma pilha é uma estrutura de dados na qual o elemento
Leia maisProfa. Thienne Johnson EACH/USP
Profa. Thienne Johnson EACH/USP Declarando classes usando generics Métodos que usam um parâmetro de tipo como tipo de retorno Declaração da classe BasicGeneric: class BasicGeneric Contém o parâmetro
Leia maisTabela Hash. Prof. Msc. Mariella Berger
Tabela Hash Prof. Msc. Mariella Berger http://www.inf.ufes.br/~mberger mberger@inf.ufes.br mariellaberger@gmail.com HASHING Suponha que você pudesse criar um array onde qualquer item pudesse ser localizado
Leia maisColeções. Prof. Marcelo Roberto Zorzan
Coleções Prof. Marcelo Roberto Zorzan Coleções Aula de Hoje Introdução Coleções podem representar estruturas de dados complexas de forma transparente para o programador. Exemplos: Músicas favoritas armazenadas
Leia maisColeções POO. Prof. Marcio Delamaro
Coleções POO Prof. Marcio Delamaro Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 1/54 Definição Interface Collection E - the type of elements in this collection The root interface in
Leia maisEstruturas de dados para listas arrays e listas ligadas
Estruturas de dados para listas arrays e listas ligadas Fernando Lobo Algoritmos e Estrutura de Dados Algumas figuras retiradas do livro Introduction to Algorithms, 3rd Edition. 1 / 29 Listas Uma lista
Leia maisÁrvores Binárias de Busca
Árvores Binárias de Busca Algoritmos e Estruturas de Dados I Nesta aula será apresentado o ADT árvore binária de busca, também conhecidas como dicionários binários Uma árvore binária de busca é uma estrutura
Leia maisPCC104 - Projeto e Análise de Algoritmos
PCC104 - Projeto e Análise de Algoritmos Marco Antonio M. Carvalho Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade Federal de Ouro Preto 27 de setembro de 2018 Marco Antonio
Leia maisCálculo de Endereço (hashing) Pesquisa de Dados em Tabelas. Função de Cálculo de endereço chave. Eficiência
Pesquisa de Dados em Tabelas Aula 11 unções de Cálculo de ndereço e Tratamento de Colisões URGS IN014 Cálculo de ndereço (hashing) Método de cálculo de endereço Aleatorização Randomização Hashing Não é
Leia maisProposta de trabalho
Proposta de trabalho 1º semestre 2004/2005 No âmbito das disciplinas de: Algoritmos e Estruturas de Dados I José Braga de Vasconcelos jvasco@ufp.pt Linguagens de Programação I Rui Silva Moreira rmoreira@ufp.pt
Leia maisProva Substitutiva PMR3201/PMR2300 1o. semestre 2015 Prof. Thiago Martins
Prova Substitutiva PMR3201/PMR2300 1o. semestre 2015 Prof. Thiago Martins Instruções: Escreva o nome e o número USP na folha de papel almaço. 1. (20 pontos) Considere a classe HashSep que implementa uma
Leia mais