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