Filtrar


Questões por página:
Como se denomina o procedimento que contém, em sua descrição, uma ou mais chamadas a si próprio?

De acordo com Szwarcfiter e Markenzon (2010), coloque F (Falso) ou V (verdadeiro) nas afirmativas abaixo, assinalando a seguir a opção que apresenta a sequência correta.


( ) Análise é um aspecto básico no estudo dos algoritmos, o qual consiste em verificar a exatidão do método empregado, o que é realizado através de um prova de matemática.

( ) Correção é outro aspecto básico no estudo do algoritmo, o qual visa à obtenção de parâmetros que possam avaliar a eficiência do algoritmo em termos de tempo de execução e memória ocupada.

( ) Frequentemente, um procedimento recursivo é mais conciso que o seu correspondente não recursivo. Entretanto, muitas vezes há desvantagens no emprego prático da recursividade, podendo um algoritmo não recursivo ser mais eficiente que o seu equivalente recursivo.

( ) As complexidades do pior caso, do melhor caso e do caso médio têm por objetivo avaliar a eficiência de tempo ou espaço. Sendo a complexidade de pior caso a que fornece um limite superior para o número de passos que o algoritmo pode efetuar, em qualquer caso,

( ) Para a questão de algoritmos ótimos, o interessante é determinar a função que represente o menor limite inferior possível para um problema e a maior complexidade de melhor caso do algoritmo.

Algoritmos de ordenação podem ser aplicados em vários tipos de estruturas, como vetores, matrizes e estruturas dinâmicas (por exemplo: listas, pilhas e filas). Sobre os algoritmos de ordenação, corresponde ao algoritmo de ordenação que utiliza a estratégia de divisão e conquista e, ainda, usa um pivô de controle durante o processo de ordenação:
Um método recursivo é aquele que chama a si mesmo, direta ou indiretamente. Métodos recursivos permitem uma descrição mais clara e concisa dos algoritmos, especialmente quando o problema a ser resolvido pode ser definido em termos recursivos. No entanto, isso não significa que um método recursivo será sempre a melhor opção para resolver um problema (Ziviani, 2012).
O código em Python, a seguir, tem como objetivo calcular, recursivamente, o n-ésimo número de Fibonacci. Esse código é extremamente ineficiente, pois recalcula o mesmo valor várias vezes. Por exemplo, para calcular fib(5) são necessários os valores de fib(4) e fib(3). Entretanto, fib(4) também chama recursivamente fib(3). 
Imagem associada para resolução da questão
Considerando a execução do código apresentado para n = 5, assinale a alternativa que representa CORRETAMENTE o número de chamadas de fib(5), fib(4), fib(3), fib(2) e fib(1), nessa ordem. 
Considere uma função recursiva em Python destinada a calcular o fatorial de um número inteiro não negativo. Para que a recursão termine corretamente, é indispensável a definição de: