Questão de Algoritmos e Estrutura de Dados — Algoritmos — IF-MG 2024
- Código
- qg240144
- Banca
- IF-MG
- Órgão
- IF-MG
- Ano
- 2024
- Nível
- Superior
- Cargo
- PROFESSOR EBTT - Informática - Itabirito
- AO(n²)
- BO(2ⁿ)
- CO(n log n)
- DO(log n)
- EO(n)
GabaritoB — O(2ⁿ)
Gabarito: letra B. A recorrência T(n) = 2T(n-1) + 1, com T(0) = 1, resulta em uma solução fechada exponencial: T(n) = 2^{n+1} - 1, que pertence à classe O(2ⁿ). Nenhuma das outras alternativas (polinomiais ou logarítmicas) representa o crescimento do número de movimentos.
A recorrência pode ser resolvida por telescopagem ou por substituição. Expandindo:
T(n) = 2T(n-1) + 1 = 2[2T(n-2) + 1] + 1 = 4T(n-2) + 2 + 1 = 8T(n-3) + 4 + 2 + 1 … = 2ⁿ T(0) + (2ⁿ - 1)
Como T(0) = 1, temos T(n) = 2ⁿ + (2ⁿ - 1) = 2^{n+1} - 1. Portanto, o número de movimentos cresce exponencialmente com o número de discos, justificando a complexidade O(2ⁿ).
O( n² ) é uma complexidade polinomial quadrática. Torre de Hanói requer muito mais operações: para n=10, 2^{11}-1 = 2047 movimentos, enquanto n² = 100. Portanto, não representa o crescimento real.
O(2ⁿ ) reflete a explosão exponencial do número de movimentos (2^{n+1}-1), confirmada pela recorrência dada. É a resposta correta.
O(n log n) é típica de algoritmos de ordenação eficientes (mergesort, heapsort). A recorrência da Torre de Hanói não se encaixa nesse padrão; sua árvore de recursão dobra a cada nível, gerando 2ⁿ folhas.
O(log n) é sublinear e aparece em algoritmos como busca binária. A Torre de Hanói exige pelo menos 2ⁿ - 1 movimentos, muito superior a log n.
O(n) é linear. Mesmo para poucos discos, o número de movimentos cresce muito mais que linearmente: n=3 → 7 movimentos; n=4 → 15; n=5 → 31.
Ao analisar recorrências, sempre expanda os primeiros termos ou use o teorema mestre. A recorrência T(n) = aT(n-1) + b com a>1 leva a complexidade exponencial O(aⁿ). Memorize esse padrão: Torre de Hanói é o exemplo clássico de O(2ⁿ).
Link permanente: /questoes/qg240144