Buscar

Projeto e Análise de Algoritmos - EEM002 Gabarito 30 09 2020

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 3 páginas

Prévia do material em texto

GABARITO 
DISCIPLINA 
EEM002 - Projeto e Análise de Algoritmos 
APLICAÇÃO 
30/09/2020 
CÓDIGO 
DA PROVA P005/P006 
 
QUESTÕES OBJETIVAS 
Questão 1.1 
Dado o algoritmo abaixo, assinale a alternativa que indica a quantidade, em função de n, de 
atribuições que serão realizadas na execução do algoritmo. 
 
ALGORITMO (n) 
1 soma = 0 
2 i = 1 
3 enquanto i <= n faça 
4 soma = soma + i 
5 i = i + 1 
6 retorne soma 
 
a) 2n+2 
b) n+1 
c) 2n+1 
d) n+2 
 
RESOLUÇÃO 
A resposta correta é: 2n+2 
 
Justificativa 
A primeira e a segunda linhas possuem uma atribuição cada e são executadas uma vez. Na terceira 
linha não há atribuições. Na quarta e na quinta linhas são executadas duas atribuições para cada 
iteração do loop. Total: 2+ 2n 
 
 
Questão 1.2 
Dadas as seguintes funções, indique a ordem delas de acordo com o crescimento para valores de n 
grandes. 
 
f(n) = log (10000n) 
g(n) = n2 + 10 
h(n) = 21000n 
 
a) f(n) < g(n) < h(n) 
b) f(n) < h(n) < g(n) 
c) g(n) < f(n) < h(n) 
d) g(n) < h(n) < f(n) 
 
RESOLUÇÃO 
A resposta correta é: f(n) < h(n) < g(n) 
 
Justificativa 
Função logarítmica tem menor taxa de crescimento e função polinomial depende do expoente de n. 
 
 
Questão 1.3 
Dado um algoritmo com a seguinte equação de recorrência: T(n) = 3T(n/2) + O(n). Podemos dizer que: 
a) o algoritmo divide o problema em dois subproblemas com um terço de tamanho cada. 
b) a etapa de conquista do algoritmo tem complexidade linear. 
c) o algoritmo leva O(n) para realizar as etapas de divisão e combinação. 
d) em cada etapa, o algoritmo chama uma recursão com 2/3 do tamanho de n. 
 
RESOLUÇÃO 
A resposta correta é: a etapa de conquista do algoritmo tem complexidade linear. 
 
Justificativa 
É chamado recursivamente três vezes o mesmo algoritmo com metade do tamanho de n. Após essa 
fase de divisão, é realizada a etapa de combinação (conquista), que leva O(n). 
 
 
Questão 1.4 
Sobre algoritmos de ordenação, considere as seguintes sentenças: 
 
1. O Quicksort tem complexidade de tempo linear, no melhor caso. 
2. O Mergesort tem complexidade de tempo quadrática, no pior caso. 
3. O Heapsort tem complexidade de espaço Θ (1). 
 
Assinale a alternativa que apresenta a sequência correta: 
a) F - V - V 
b) F - F - V 
c) F - F - F 
d) V - V - V 
 
RESOLUÇÃO 
A resposta correta é: F - F - V 
 
Justificativa 
O Quicksort tem complexidade O(n log n), no melhor caso. 
O Mergesort tem complexidade O(n log n), em qualquer caso. 
 
 
QUESTÕES DISSERTATIVAS 
 
Questão 2 
Utilize o teorema mestre para resolver a seguinte equação de recorrência: T(n) = 2T(n/2) + Θ(n). 
 
RESOLUÇÃO 
Para essa recorrência, temos: a = 2, b = 2 e f(n) = Θ(n). 
Além disso, logba = log22 = 1. 
Dos três casos possíveis, apenas o 2 é aplicável, já que f(n) = Θ(nlogba). 
Aplicando o caso 2, temos: 
f(n) = Θ(nlogba) = Θ(n). Portanto, T(n) = Θ(nlogba logn) = Θ(n log n). 
 
Rubricas | critérios de correção 
50% caso o aluno acerte o resultado final. 
50% caso o aluno acerte o caso do teorema mestre. 
 
 
Questão 3 
Demonstre que n3 + n é Ω(n). 
 
RESOLUÇÃO 
Falar que n3 + n é Ω(n) equivale a dizer que: 
- Existe uma constante c e um valor inicial n0, tal que n3 + n >= cn. 
- Escolhendo um valor para n0 que seja maior ou igual a 1 e c = 1, podemos satisfazer a condição 
acima. Desse modo, temos que n3 + n > 1.n para qualquer valor de n >= 1. Assim, n3 + n é Ω(n). 
 
Rubrica | critérios de correção 
O aluno pode chegar a outra prova (principalmente se escolher outros valores para c e n0). Nesse caso, 
verificar se os cálculos estão corretos.

Continue navegando