Quando utilizar recursão ao invés de iteração em um algoritmo?
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Construir soluções de problemas usando a técnica de recursão e automatizar tais soluções usando uma linguagem de programação.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Quando utilizar recursão ao invés de iteração em um algoritmo?
- A) Quando o problema é simples
- B) Quando há muitos dados
- C) Quando o problema pode ser dividido
- D) Quando a performance é prioridade
- E) Quando não se usa listas
✅ Resposta correta: alternativa C
Resolução passo a passo
- A recursão é uma técnica em que uma função chama a si mesma para resolver um problema. Ela é indicada quando o problema pode ser dividido em subproblemas menores do mesmo tipo, que se resolvem da mesma forma, e cujas soluções parciais se combinam para formar a solução final. Exemplos clássicos são fatorial, Fibonacci, percurso em árvores e algoritmos de divisão e conquista como o merge sort.
- Analisando a alternativa C, 'Quando o problema pode ser dividido', ela descreve exatamente essa condição. Por isso, C é a resposta correta, e ela coincide com o gabarito oficial.
- A alternativa A está errada porque problemas simples costumam ser resolvidos de forma direta, com iteração, sem necessidade de chamadas recursivas.
- A alternativa B está errada porque a quantidade de dados, por si só, não determina o uso de recursão; grandes volumes são frequentemente tratados com laços iterativos.
- A alternativa D está errada porque a recursão tende a consumir mais memória, pois cada chamada ocupa espaço na pilha de execução, e geralmente é menos eficiente que a iteração equivalente; portanto, ela não é escolhida por performance.
- A alternativa E está errada porque o uso ou não de listas não tem relação com a escolha entre recursão e iteração; listas podem ser percorridas das duas formas.
- Conclusão: a recursão se justifica pela estrutura do problema, que pode ser decomposto em partes semelhantes, e não pelo tamanho dos dados, pela simplicidade ou pela eficiência.
💡 Dica: Considere as vantagens e desvantagens de cada abordagem.
Alternativa por alternativa
O aluno associa recursão a problemas simples, talvez por confundir a ideia de caso base com simplicidade do problema. Na prática, a recursão se fundamenta na decomposição do problema, não na sua simplicidade.
Por que engana: Confundir a aplicabilidade da recursao, pensando que ela e sempre melhor para problemas simples ou com muitos dados.
O aluno acredita que recursão serve para lidar com grandes volumes de dados, confundindo a escala dos dados com a estrutura do problema. Grandes volumes costumam favorecer soluções iterativas, que não acumulam chamadas na pilha.
Recursão é útil para problemas que se podem dividir em subproblemas.
O aluno supõe que recursão é mais rápida ou mais otimizada, o que é um senso comum equivocado, pois cada chamada gera custo extra de pilha e de execução. A iteração costuma ser preferida quando desempenho é prioridade.
O aluno enxerga uma relação inexistente entre o uso de listas e a escolha da técnica, possivelmente por associar recursão a estruturas de dados encadeadas. Listas podem ser percorridas tanto por recursão quanto por iteração.
Raio-X da questão
recursão e iteração
avaliacao
conceito de recursao · conceito de iteracao
Revisar as características de algoritmos recursivos e iterativos.
Confundir a aplicabilidade da recursao, pensando que ela e sempre melhor para problemas simples ou com muitos dados.
pensamento_critico
abstrato
Questões parecidas com resolução
- Em um programa, qual é o uso correto da recursão?
- Para que serve a recursão em programação?
- Qual é a principal vantagem de usar recursão em um algoritmo para resolver problemas relacionados a listas?
- Descreva como a utilização de listas e recursão pode otimizar a resolução de problemas em programação. Quais são as…
- Explique como a técnica de recursão pode ser aplicada na resolução de um problema prático, exemplificando com um…
- Quais cuidados devem ser tomados ao utilizar recursão em listas?
Todas as questões de Programação - Programação com listas e recursão
🔎 Procurar outra questão
Procure no banco do GeraProva pelo tema ou por um trecho do enunciado. Cada questão já vem com resolução comentada e a análise de cada alternativa.
Professor: monte a prova com questões como esta, com gabarito e folha de respostas, em 30 segundos. Ver planos · Blog
