algoritmos para automação e sistemas quinta lista de...
TRANSCRIPT
1
Algoritmos para Automação e Sistemas
Quinta Lista de Exercícios
1) Considere um conjunto dinâmico S que é representado por uma tabela de endereço direto
T de comprimento m. Descreva um procedimento que encontre o elemento máximo de S.
Qual é o desempenho de seu procedimento no pior caso?
2) Demonstre a inserção das chaves 5, 28, 19, 15, 20, 33, 12, 17, 10 em uma tabela hash com
colisões resolvidas por encadeamento. Seja a tabela com 9 posições, e seja a função hash
h(k)=k mod 9.
3) Demonstre a inserção das chaves 45, 18, 56, 115, 41, 133, 121, 93 em uma tabela hash de
8 posições usando sondagem linear e outra com sondagem quadrática.
4) Temos uma tabela hash T de tamanho 13. Construa T para armazenar a sequência <13, 79,
69, 72, 98, 14>. Considere os seguintes valores para h2(k) e m.
a) Pemitir que m seja uma potência de 2 e projetar h2 de modo que ele sempre produza
um número ímpar.
b) Permitir que m seja primo e projetar h2 de forma que ele sempre retorne um inteiro
positivo menor que m.
Mostre a sequência de inserções conforme visto em sala de aula.
5) Um vetor de bits é simplesmente um arranjo de bits (0s e 1s). Um vetor de bits de
comprimento m ocupa muito menos espaço que um arranjo de m ponteiros. Descreva como
usar um vetor de bits para representar um conjunto dinâmico de elementos distintos sem
dados satélites. As operações de dicionário devem ser executadas em tempo O(1).
6) O Professor Marley apresenta a hipótese de que é possível obter ganhos substanciais de
desempenho se modificarmos o esquema de encadeamento de tal modo que cada lista seja
mantida em sequência ordenada. Como a modificação do professor afeta o tempo de
execução para pesquisas bem-sucedidas, pesquisas sem sucesso, inserções e eliminações.
7) Considere uma tabela hash de tamanho m=1000 e a função hash correspondente h(k) igual
a m(kA mod 1) para ( )
215 −
=A . Calcule as localizações para as quais as chaves 61, 62,
63, 64 e 65 estão mapeadas.
8) Escreva o pseudocódigo para HASH-DELETE da forma descrita na sala de aula e
modifique HASH-INSERT para manipular o valor especial DELETED.
9) Implemente uma tabela hash com listas encandeadas e outra com o endereçamento aberto.
Para um mesmo conjunto de entrada, qual seria o consumo de memória se implementarmos
2
um hash de 1M, 10M e 100M de posições (e elementos de entrada) usando o encadeamento e
o endereçamento aberto?
10) Considere uma tabela hash de endereço aberto com hash uniforme. Forneça os limites
superiores sobre o número esperado de sondagens em uma pesquisa malsucedida e sobre o
número esperado de sondagens em uma pesquisa bem sucedida quando o fator de carga é 3/4
e quando ele é 7/8.
11) A Fala! é uma grande companhia telefônica que precisa identificar rapidamente os nomes
de quem faz chamadas telefônicas:
• Dado um número de telefone (de 8 digitos), encontrar o nome de quem está ligando
• Os números de telefone se encontram na faixa de 0 a r = 108 -1
• A busca deve ser bastante eficiente!!!
Compare a eficiência da tabela hash com encadeamento e com hash duplo. Qual delas você
sugeriria para a companhia telefônica fala!?
Data de entrega: 02 de julho de 2015 (quinta-feira).
Após esta data será descontado 2 pontos por dia de atraso.
A lista de exercícios deve ser resolvida e entregue individualmente.
23/06/2015