Procédure
Transcription
Procédure
Universidade Tecnológica Federal do Paraná (UTFPR) Departamento Acadêmico de Informática (DAINF) IF62E - Algoritmos 2 Professor: Alex Kutzke ([email protected]) Primeira Prova - 07/10/2015 Instruções • A interpretação faz parte da prova; • Seja claro nas explicações; • A prova pode ser feita a lápis; • A prova contém 5 questões, além de uma questão extra; • A nota máxima da prova, incluindo a questão extra, é 12. 1) (Valor: 1,5) Considerando a linguagem C, compare a estrutura de vetor e a TAD lista (com ponteiros) vista durante as aulas. Cite vantagens e desvantagens de cada uma. 2) (Valor: 1,5) A estrutura de dados fila segue o procolo First-In First-Out (FIFO) e pode basicamente ser implementada de duas maneiras: através de vetores ou através de listas encadeadas. Na implementação usando vetores pode ser conveniente considerar o vetor de forma circular. Justifique essa escolha. 3) (Valor: 2,0) Que conjunto de critérios é necessário e suficiente para que uma sequência de operações Empilha e Desempilha sobre uma única pilha (inicialmente vazia) deixe a pilha vazia e não provoque underflow (tentativa de Desempilhar em uma pilha vazia)? Que conjunto de critérios é necessário para que essa sequência deixe uma pilha não vazia inalterada? 4) (Valor: 2,0) Considere que você tenha um problema para resolver e duas opções de algoritmos. O primeiro algoritmo é quadrático tanto no pior caso quanto no melhor caso. Já o segundo algoritmo, é linear no melhor caso e cúbico no pior caso. Considerando que o melhor caso ocorre 90% das vezes que você executa o programa enquanto o pior caso ocorre apenas 10% das vezes, qual algoritmo você escolheria? Justifique a sua resposta em função do tamanho da entrada. 1 5) (Valor: 3,0) Considere a seguinte função recursiva: int funcaoR ( int n , int v [ ] ) { i f ( n == 1 ) return v [ 0 ] ; i f ( funcaoR ( n−1, v ) < v [ n −1]) return v [ n − 1 ] ; e l s e return funcaoR ( n−1, v ) ; } Responda: a. O que essa função faz? b. Desenhe a árvore de chamadas recursivas para o seguinte caso de teste: n = 5 e v = [1, 2, 3, 5, 4]; c. Critique essa implementação (encontre, se houverem, pontos positivos e negativos); d. Qual o melhor caso para essa implementação? E o pior caso? Por que? e. Qual a complexidade dessa função no pior caso? Questão extra 6) (Valor: 2,0) Explique como implementar duas pilhas em um único vetor A[1..n] de forma que nenhuma das pilhas fique “cheia” a não ser que o número total de elementos das duas pilhas juntas seja n. As operações empilha e desempilha devem rodar em tempo O(1). 2
Documents pareils
procédure de recrutement des étrangers au Maroc v2
Procédure de recrutement des étrangers
L’objet de cette présentation est de décrire les modalités de
délivrance de l’attestation d’activité au MAROC pour les
salariés étrangers, prévue dans la let...