Questão de Algoritmos e Estrutura de Dados — Algoritmos — IFB 2017
- Código
- qq283600
- Banca
- IFB
- Órgão
- IFB
- Ano
- 2017
- Nível
- Superior
- Cargo
- Professor - Informática
- AI, II, IV, V.
- BI, II, III, IV.
- CI, II, III, V.
- DII, III, IV, V.
- EII, IV, V.
GabaritoE — II, IV, V.
Gabarito: letra E. As afirmativas corretas são II, IV e V. A questão cobra o conhecimento das principais classes de complexidade (logarítmica, quadrática, exponencial, fatorial) e exemplos clássicos como a pesquisa binária.
Afirmativa | Descrição | Complexidade Associada | Correção | Motivo |
|---|---|---|---|---|
I | "Transforma problemas em menores e agrupa soluções" | O(n log n) ou O(n²) (divisão e conquista) | ❌ Incorreto | Descrição corresponde a divisão e conquista, não a logarítmica (O(log n)) |
II | "Processa dados aos pares com anel dentro de outro" | O(n²) (quadrática) | ✅ Correto | Padrão típico de dois laços aninhados |
III | "Exponencial é mais rápido que linear" | O(2ⁿ) vs O(n) | ❌ Incorreto | Exponencial cresce muito mais rápido que linear |
IV | "n! é pior que 2ⁿ" | O(n!) vs O(2ⁿ) | ✅ Correto | n! cresce mais rápido que 2ⁿ para n ≥ 4 |
V | "Pesquisa binária é logarítmica" | O(log n) | ✅ Correto | Reduz espaço pela metade a cada passo |
Afirma que complexidade logarítmica é típica de algoritmos que transformam problemas em menores e depois agrupam soluções. Essa descrição corresponde à estratégia divisão e conquista, que geralmente resulta em complexidades como O(n log n) (ex.: merge sort) ou O(n²) (ex.: quicksort no pior caso), não necessariamente logarítmica. A complexidade logarítmica (O(log n)) ocorre quando o problema é reduzido por um fator constante a cada passo, como na pesquisa binária, sem necessidade de agrupar soluções. Portanto, o item é falso.
A complexidade quadrática (O(n²)) é típica de algoritmos com dois laços aninhados que percorrem os dados, processando pares de elementos. A descrição "processados ao pares muitas vezes com um anel dentro de outro" corresponde exatamente a esse padrão. Exemplo: ordenação por bolha (bubble sort). Item correto.
Afirma que complexidade exponencial é mais rápida que linear. Na verdade, para entradas grandes, algoritmos exponenciais (O(2ⁿ)) tornam-se extremamente lentos, enquanto lineares (O(n)) são muito mais eficientes. Exponencial cresce muito mais rápido que linear, portanto a afirmação está invertida. Item falso.
A complexidade fatorial (O(n!)) é de fato pior que a exponencial (O(2ⁿ)) para n ≥ 4, pois n! cresce mais rapidamente. Exemplo: problema do caixeiro-viajante por força bruta. A afirmação está correta.
A pesquisa binária tem complexidade O(log n). A cada passo, o espaço de busca é reduzido pela metade, caracterizando comportamento logarítmico. Item correto.
O item III inverte a relação de crescimento: exponencial é mais lento, não mais rápido. O item I confunde logarítmica com divisão e conquista. Na prova, desconfie de afirmações que trocam o sinal da comparação ou atribuem características erradas às classes de complexidade.
Conclusão: Estão corretos os itens II, IV e V, que correspondem à alternativa E.
Link permanente: /questoes/qq283600