quarta-feira, 10 de abril de 2013

MO417 - Questão para a prova oral

Número: 2013-036

Enunciado: Considere a seguinte versão do algoritmo para calcular números de Fibonacci:

FIBONACCI(n)
1 Criar arranjo Fib[1..n]
2 for i=1 to n
3    do Fib[i]=-1
4 Fib[1]=1
5 Fib[2]=1
6 return LOOKUP-FIB(Fib,n)

LOOKUP-FIB(Fib,n)
1 if (Fib[n]>0)
2   then return Fib[n]
3   else
4       return Fib[n]=LOOKUP-FIB(Fib,n-1) + LOOKUP-FIB(Fib,n-2)

Podemos AFIRMAR que:

a) Trata-se um algoritmo memoizado com tempo de execução O(n)
b) Não é um algoritmo memoizado mas seu tempo de execução é O(lg n)
c) Somente é um algoritmo recursivo com tempo de execução O(2^n)
d) É um algoritmo memoizado com tempo de execução O (lg n)
e) NDA

Ideia original de: Marleny Luque Carbajal

Nenhum comentário:

Postar um comentário