Questões de Concurso Comentadas sobre recursividade em algoritmos e estrutura de dados

Foram encontradas 52 questões

Q4193134 Algoritmos e Estrutura de Dados
A recursividade é um conceito fundamental em ciência da computação, em que uma função chama a si mesma para resolver instâncias menores do mesmo problema. No que se refere à estrutura e aos riscos do uso de funções recursivas, assinale a alternativa CORRETA.
Alternativas
Q4086263 Algoritmos e Estrutura de Dados
No desenvolvimento de algoritmos, a recursividade pode ser classificada em diferentes tipos, de acordo com a forma como as chamadas recursivas ocorrem. Nesse sentido, considere que uma função, durante sua execução, realiza uma chamada para ela mesma, ou seja, a própria função invoca diretamente sua definição em seu corpo. Essa situação caracteriza qual tipo de recursividade? 
Alternativas
Q4086235 Algoritmos e Estrutura de Dados
Em linguagens de programação, os comandos controlam o fluxo de execução e manipulam dados. A recursividade permite que funções chamem a si mesmas para resolver problemas de forma hierárquica ou repetitiva. A esse respeito, informe se é verdadeiro (V) ou falso (F) o que se afirma a seguir e assinale a alternativa com a sequência correta.

( ) 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. 
Alternativas
Q4067211 Algoritmos e Estrutura de Dados
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: 
Alternativas
Q4057675 Algoritmos e Estrutura de Dados
A recursão é uma técnica onde uma função chama a si mesma para resolver subproblemas menores de um problema original, sendo amplamente aplicada em algoritmos de divisão e conquista. Para que uma função recursiva termine adequadamente e não cause um erro de estouro de pilha, um elemento técnico específico deve estar presente. Assinale a alternativa correta.
Alternativas
Q4052681 Algoritmos e Estrutura de Dados
A técnica de recursividade em algoritmos, embora elegante, pode levar ao erro de Stack Overflow principalmente devido a: 
Alternativas
Ano: 2026 Banca: FGV Órgão: AMAZUL Prova: FGV - 2026 - AMAZUL - Engenheiro de Computação |
Q3851271 Algoritmos e Estrutura de Dados
Um desenvolvedor está otimizando um algoritmo recursivo de Fibonacci e observa que para n=45 o tempo de execução é inaceitável. A análise mostra que a função é chamada repetidamente com os mesmos argumentos.
A técnica de otimização mais adequada para reduzir drasticamente o tempo de execução, sem alterar a natureza recursiva do algoritmo é
Alternativas
Q4159911 Algoritmos e Estrutura de Dados
Em estruturas de dados, diversos algoritmos de ordenação podem ser utilizados, cada um com características específicas quanto à eficiência e complexidade. Um desses algoritmos segue a estratégia “dividir para conquistar”, dividindo recursivamente o vetor em partes menores, ordenando essas partes e depois mesclando os resultados em uma sequência final ordenada. O enunciado refere-se ao algoritmo 
Alternativas
Q3247488 Algoritmos e Estrutura de Dados
Os algoritmos são sequências lógicas e finitas de passos que resolvem problemas específicos, sendo a base para o desenvolvimento de sistemas computacionais. Sobre algoritmos, analise as afirmativas a seguir:
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:
Alternativas
Q4197623 Algoritmos e Estrutura de Dados

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.

Alternativas
Q4197621 Algoritmos e Estrutura de Dados

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). 

Alternativas
Q3322953 Algoritmos e Estrutura de Dados
Ao processar uma função recursiva, por padrão, as chamadas recursivas são armazenadas na estrutura de dados:
Alternativas
Q3268804 Algoritmos e Estrutura de Dados
Assinale a alternativa que apresenta a situação em que a recursividade pode ser menos eficiente que a iteração.
Alternativas
Q2518079 Algoritmos e Estrutura de Dados
Diversas operações matemáticas podem ser implementadas de forma recursiva, como no algoritmo seguinte.

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):
Alternativas
Q2378356 Algoritmos e Estrutura de Dados

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

Alternativas
Q2381032 Algoritmos e Estrutura de Dados
Quanto a Recursividade é INCORRETO afirmar: 
Alternativas
Q4172580 Algoritmos e Estrutura de Dados

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 é

Alternativas
Q4078623 Algoritmos e Estrutura de Dados
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:
Alternativas
Q1894469 Algoritmos e Estrutura de Dados

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. 

Alternativas
Q1104536 Algoritmos e Estrutura de Dados
A situação em que dois subprogramas fazem chamadas recíprocas, como, por exemplo, um subprograma P faz uma chamada a um subprograma J, que, por sua vez, faz uma chamada a P, é caracterizada como uma
Alternativas
Respostas
1: D
2: C
3: D
4: A
5: D
6: C
7: A
8: E
9: D
10: A
11: D
12: B
13: C
14: C
15: C
16: E
17: B
18: A
19: C
20: B