Questão de Algoritmos e Estrutura de Dados — Algoritmos — FGV 2024
- Código
- fg077362
- Banca
- FGV
- Órgão
- CVM
- Ano
- 2024
- Nível
- Superior
- Cargo
- Analista - Perfil 8 - TI / Sistemas e Desenvolvimento - Tarde
- AO(2n );
- BO(n);
- CO(n log n);
- DO(n² );
- EO(log n).
GabaritoA — O(2n );
Gabarito: letra A. O algoritmo recursivo da Torre de Hanói possui complexidade O(2^n) no pior caso. A relação de recorrência é T(n) = 2T(n-1) + 1, com T(1)=1, cuja solução fechada é T(n) = 2^n - 1 movimentos – crescimento exponencial em relação ao número de discos. O conteúdo de apoio (descrição do problema) confirma que o número mínimo de movimentos é 2^n - 1.
A alternativa expressa O(2^n) (a notação na questão aparece como "O(2n )", mas trata-se da complexidade exponencial). A cada chamada recursiva, o problema gera duas subinstâncias de tamanho n-1, resultando em 2^n - 1 movimentos no total.
O(n) – complexidade linear. O algoritmo não é linear; o número de movimentos dobra aproximadamente a cada disco adicionado. Confunde-se com algoritmos que percorrem uma estrutura uma única vez (ex.: busca linear).
O(n log n) – complexidade linearítmica. Típica de algoritmos de ordenação eficientes (merge sort, quicksort). Torre de Hanói não possui essa característica.
O(n²) – complexidade quadrática. Comum em algoritmos como bubble sort. A Torre de Hanói é exponencial, muito mais custosa para n grandes.
O(log n) – complexidade logarítmica. Característica de busca binária. Aqui o número de operações cresce rapidamente, não de forma logarítmica.
Para problemas recursivos, monte a recorrência e resolva. Torre de Hanói é o exemplo clássico de complexidade exponencial. Grave a relação T(n) = 2T(n-1) + 1 → O(2^n). Ela aparece frequentemente em provas de concurso.
Conclusão: A complexidade do algoritmo da Torre de Hanói no pior caso é O(2^n), correspondente à alternativa A.
Link permanente: /questoes/fg077362