Questões de Concurso
Comentadas sobre recursividade em algoritmos e estrutura de dados
Foram encontradas 52 questões
( ) O comando for é um exemplo de estrutura de repetição que executa um bloco de código várias vezes, dependendo de uma condição.
( ) Em recursividade, não é necessário definir um caso-base, pois a função se encerra automaticamente após chamadas sucessivas.
( ) O comando if-else permite que diferentes blocos de código sejam executados dependendo de uma condição booleana.
( ) Uma função recursiva pode ser reescrita utilizando loops equivalentes, sem alterar o resultado final do programa.
A técnica de otimização mais adequada para reduzir drasticamente o tempo de execução, sem alterar a natureza recursiva do algoritmo é
I. Algoritmos recursivos são aqueles que se definem em termos de si mesmos, exigindo uma condição base para evitar chamadas infinitas.
II. A complexidade de tempo de um algoritmo refere-se exclusivamente ao número de passos necessários para executar o código, desconsiderando a entrada do problema.
III. Um algoritmo pode ser implementado em diferentes linguagens de programação, desde que sua lógica seja preservada.
Está correto o que se afirma em:
Considere os dois pseudocódigos recursivos apresentados a seguir:
Código 01
função fibonacci(n: inteiro) -> inteiro:
se n <= 1 então
retornar n
senão
retornar fibonacci(n-1) + fibonacci(n-2)
fim se
Código 02
função fatorial(n: inteiro) -> inteiro:
se n <= 1 então
retornar 1
senão
retornar n * fatorial(n-1)
fim se
A partir da análise dos códigos apresentados, assinale a alternativa que apresenta a principal diferença entre os pseudocódigos recursivos 1 e 2 em termos de seu propósito e operação.
Considere a seguinte função recursiva em pseudocódigo:
função fatorial(n: inteiro) -> inteiro:
se n = 0 ou n = 1 então
retornar 1
senão
retornar n * fatorial(n - 1)
fim se
Com base na análise da função, assinale a alternativa que apresenta o resultado da chamada da função fatorial(5).
Função X (J: inteiro, K: inteiro)
Início
Se J < K Então
Retorne J
Senão
Retorne X (J-K, K)
Fim
Considerando o domínio dos inteiros positivos, a função terá como resultado o(a):
Acerca de estrutura de dados e algoritmos, julgue o item a seguir.
O seguinte pseudocódigo possui complexidade de tempo de pior caso O(2") para a verificação da existência de um elemento na lista.
função BuscaRecursiva(lista, tamanho,
elemento)
se tamanho < 1 então
retorna FALSO
se lista[tamanho] == elemento então
retorna VERDADEIRO
senão
BuscaRecursiva(lista, tamanho-1, elemento)
fim função
Considere o programa a seguir escrito em linguagem C.
#include <stdio.h>
int TAM(int n) {
int x;
if (n == 1) {
return(1 + n);
}
x = TAM(n/2) + TAM(n/2);
return(x);
}
int main() {
int n = 16;
printf("%d ", TAM(n));
}
Após a execução do programa, o resultado é
Julgue o item subsequente, a respeito de algoritmos para ordenação e pesquisa e de programação recursiva.
Uma função é dita recursiva quando, dentro dela, é feita uma
ou mais chamada a ela mesma.