Primeira Prova — Análise de Algoritmos - MAT-UnB

Propaganda
16.04.2007
Primeira Prova — Análise de Algoritmos
Depto. de Matemática – UnB
Nome:
No. Matrı́cula:
1. Seja o seguinte problema: Dado um vetor V et de tamanho M ax ordenado crescentemente, desejase inserir um elemento Ind na última posição possı́vel, mas mantendo a ordenação de V et.
a) (0,5 ponto) Descreva um algoritmo que resolva esse problema e que seja obrigatoriamente
recursivo e ótimo (com respeito ao limitante inferior do pior caso para o problema, que
consta do último item desta questão).
b) (1,5 pontos) Prove a sua correteza.
c) (1 ponto) Faça a análise do melhor e do pior casos do algoritmo, em função do tamanho
M ax, com respeito ao número de acessos ao vetor V et. Descreva obrigatoriamente o tipo de
entrada de melhor e de pior casos.
d) (2 pontos) Prove um limitante inferior do pior caso para o problema que torne o algoritmo
acima ótimo.
2. a) (0,5 ponto) Defina nı́veis e a altura de uma árvore e também árvore binária semi-completa e
balanceada (conforme fornecido em aula!).
b) (1,5 pontos) Demonstre completamente que a altura de uma árvore binária semi-completa
com n ∈ N∗ nós é
k = ⌊log2 (n)⌋ + 1.
c) (2 pontos) Para uma árvore binária com n ∈ N∗ nós, dizemos que um vetor de tamanho n é
a representação dessa árvore se podemos associar cada nó da árvore a uma (única) posição
do vetor tal que valha a seguinte propriedade:
Todo nó da árvore é associado a uma posição do vetor entre (pela ordem) todas as
posições associadas aos seus descendentes à esquerda e todas as posições associadas
aos seus descendentes à direita.
Agora, dado um vetor V et de tamanho n ∈ N∗ , mostre que existe uma única árvore binária
balanceada T com n nós tal que V et é a sua representação.
Para facilitar, pode-se pensar que a árvore binária é rotulada (tendo todos os seus rótulos
distintos entre si e/ou vinculando cada rótulo ao seu respectivo nó) e os rótulos são gravados
no vetor.
3. (3 pontos) Descreva o algoritmo Busca Binária e qual o problema que ele resolve. Posteriormente
demonstre a sua correteza.
Atenção:
Todas as afirmações e passagens precisam ser claramente explicadas e justificadas. Os
resultados fornecidos em aula, nas listas de exercı́cio, ou até na prova podem ser utilizados apenas
enunciando-os (corretamente!). Mas qualquer outro resultado deve ser devidamente enunciado e demonstrado.
Obs: A prova tem 12 pontos, valem os 10 melhores pontos!!!!
Muito boa prova
Claus
Download