GeraProva GeraProva Provas com IA para professores do Brasil
Computação5º anoBNCC EF15CO04Média⏱ medio

Considere um algoritmo recursivo que percorre uma lista L de n elementos, fazendo uma chamada recursiva por…

Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva

Habilidade BNCC EF15CO04

Aplicar a estratégia de decomposição para resolver problemas complexos, dividindo esse problema em partes menores, resolvendo-as e combinando suas soluções.

Fonte: Base Nacional Comum Curricular (MEC).

Questão

Considere um algoritmo recursivo que percorre uma lista L de n elementos, fazendo uma chamada recursiva por elemento e sem usar acumulador: qual é a complexidade de espaço adicional em função de n (considere a pilha de chamadas)?

  1. A) Complexidade de espaço O(log n) para n elementos.
  2. B) Complexidade de espaço O(1) para n elementos.
  3. C) Complexidade de espaço O(n^2) devido à pilha de chamadas.
  4. D) Complexidade de espaço constante, não dependente de n.
  5. E) Complexidade de espaço O(n) devido à pilha de chamadas recursivas.

✅ Resposta correta: alternativa E

Resolução passo a passo

  1. Identifique o que o enunciado descreve. O algoritmo percorre uma lista de n elementos e faz uma chamada recursiva para cada elemento, sem acumulador. Assim, cada chamada espera o retorno da seguinte, e as chamadas ficam empilhadas na pilha de execução.
  2. Calcule a profundidade máxima da pilha. Como há uma chamada por elemento, quando o algoritmo está no último elemento existem cerca de n chamadas ativas ao mesmo tempo, cada uma com seu próprio registro (variáveis locais, endereço de retorno e parâmetros).
  3. Some o espaço. Cada registro ocupa uma quantidade limitada de memória que não cresce com n, então o espaço total da pilha é proporcional a n, ou seja, O(n). Pelo enunciado, o espaço adicional é esse, sem contar a própria lista de entrada.
  4. Compare com as alternativas. A alternativa A está errada porque O(log n) corresponde a algoritmos que dividem o problema pela metade a cada chamada, como a busca binária, e aqui o problema diminui apenas um elemento por vez. A alternativa B está errada porque O(1) exigiria um número fixo de chamadas, o que não ocorre quando há uma chamada por elemento. A alternativa C está errada porque O(n^2) não surge de uma pilha com uma chamada por elemento, pois a profundidade cresce linearmente. A alternativa D está errada porque afirma espaço constante, o que contradiz a profundidade crescente da pilha.
  5. Conclusão. A alternativa correta é a E, complexidade de espaço O(n) devido à pilha de chamadas recursivas, coincidindo com o gabarito oficial.

💡 Dica: Analise a estrutura do algoritmo recursivo e a pilha de chamadas.

Alternativa por alternativa

A Erradaerro: Conceituala que mais engana

O aluno provavelmente associou recursão a algoritmos de divisão e conquista, como a busca binária, que têm profundidade logarítmica. Não percebeu que aqui o problema diminui apenas um elemento por chamada.

Por que engana: Confundir a complexidade de espaço com a complexidade de tempo, avaliando incorretamente a pilha de chamadas.

B Erradaerro: Senso comum

O aluno pode ter imaginado que, como não há acumulador nem estruturas auxiliares, o espaço seria constante. Ignorou que cada chamada recursiva ocupa um registro na pilha e que essas chamadas se acumulam.

C Erradaerro: Procedimental

O aluno pode ter confundido a profundidade da pilha com o número de comparações ou pares de elementos, que em alguns algoritmos cresce quadraticamente. A pilha, porém, cresce linearmente com o número de chamadas.

D Erradaerro: Conceitual

O aluno provavelmente pensou que, por não haver variáveis que armazenem os n elementos, o espaço não depende de n. Não considerou que a pilha de chamadas cresce a cada elemento processado.

E Correta

Cada chamada empilha um quadro; para n elementos haverá até n quadros simultâneos, gerando espaço linear.

Raio-X da questão

Dificuldade Média
Leitura alto
Discriminação alto
Peso pedagógico alto
Autonomia do enunciado completo
Cobertura da habilidade unica
🧪 Simulado🩺 Diagnóstico🧮 Exige cálculo🏠 Cotidiano🔗 Interdisciplinar⭐ Representativa✍️ interpretativa🧩 desafio
🎯 Conceito central

complexidade de espaço

📌 Objetivo

avaliacao

🧱 Pré-requisitos

algoritmos recursivos · complexidade de algoritmos

📚 Reveja

Revisar conceitos de algoritmos recursivos e complexidade de espaço.

⚠️ Erro mais comum

Confundir a complexidade de espaço com a complexidade de tempo, avaliando incorretamente a pilha de chamadas.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

pensamento_critico

🏫 Contexto

abstrato

Questões parecidas com resolução

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

Ocorreu um erro inesperado. Recarregar X

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.