Pular para o conteúdo principal

Questão de Algoritmos e Estrutura de Dados — Algoritmos — FCC 2017

Algoritmos e Estrutura de DadosAlgoritmos
Código
fc038598
Banca
FCC
Órgão
TRF - 5ª REGIÃO
Ano
2017
Nível
Superior
Cargo
Analista Judiciário - Informática Desenvolvimento
Considere o algoritmo abaixo.static int fibonacci(int n) {if (n <= 1) {return n;}return fibonacci(n - 2) + fibonacci(n - 1);}A complexidade deste algoritmo, na notação Big O, é
  1. AO(2ⁿ).
  2. BO(n²).
  3. CO(n).
  4. DO(log(n)).
  5. EO(n⁴).
Revelar gabarito e comentário

GabaritoA — O(2ⁿ).

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Complexidade do Fibonacci Recursivo

Gabarito: letra A. O algoritmo recursivo de Fibonacci apresentado possui complexidade exponencial O(2ⁿ) porque cada chamada gera duas novas chamadas recursivas, formando uma árvore binária de altura n, com aproximadamente 2ⁿ chamadas totais (ignorando constantes).

A banca cobra a análise da recursão em árvore binária. O erro típico é confundir a profundidade da recursão (n) com o número total de chamadas, que cresce exponencialmente. Cada ramificação dobra o trabalho a cada nível.

Alternativa A — ✅ Correta ⟵ GABARITO

O número de chamadas recursivas segue aproximadamente a sequência de Fibonacci, cujo crescimento é exponencial. Na notação Big O, a cota superior é O(2ⁿ), pois cada nó pai gera dois filhos até a profundidade n.

Alternativa B — ❌ Incorreta

O(2ⁿ) é exponencial, não quadrático. Complexidade O(n²) aparece em algoritmos com dois loops aninhados sobre a entrada, não nesta recursão.

Alternativa C — ❌ Incorreta

O(n) seria linear, como um único loop. A recursão do Fibonacci gera muito mais chamadas: cada nível dobra a quantidade.

Alternativa D — ❌ Incorreta

O(log n) é típico de algoritmos que dividem o problema pela metade a cada passo (ex.: busca binária). Aqui o problema não é reduzido pela metade, mas sim dividido em dois subproblemas de tamanho n-1 e n-2, gerando explosão combinatória.

Alternativa E — ❌ Incorreta

O(n⁴) é polinomial de grau 4. A recursão do Fibonacci tem crescimento exponencial, muito mais rápido que qualquer polinômio.

NÃO CAIA NESSA!

O candidato pode achar que a complexidade é O(n) porque a profundidade máxima da recursão é n. No entanto, a cada nível o número de chamadas dobra, resultando em 2ⁿ chamadas totais – uma armadilha clássica de análise de recursão em árvore.

Gabarito: letra A.

Link permanente: /questoes/fc038598