Pular para o conteúdo principal

Questão de Algoritmos e Estrutura de Dados — Algoritmos — IBFC 2023

Algoritmos e Estrutura de DadosAlgoritmos
Código
qq936065
Banca
IBFC
Órgão
SAEB-BA
Ano
2023
Nível
Superior
Cargo
Analista Técnico - Tecnologia da Informação (Desenvolvimento)
Ao desenvolvermos algoritmos que utilizam laços de repetição (loops), devemos sempre levar em consideração a preocupação com a otimização destes laços, uma vez que do ponto de vista de complexidade de algoritmos, laços de repetição tendem a ter um grande consumo de tempo e espaço, sobre a otimização de laços (loops). Diante do exposto, assinale a alternativa correta.
  1. AA otimização de loops é importante para melhorar o desempenho do código e reduzir o consumo de recursos
  2. BA otimização de loops é irrelevante, pois os compiladores modernos otimizarão automaticamente todos os loops
  3. CA otimização de loops é irrelevante, uma vez que este conceito não é aderente a complexidade de algoritmos
  4. DA otimização de loops é uma prática pouco aplicada, uma vez que isto pode levar a erros de lógica
Revelar gabarito e comentário

GabaritoA — A otimização de loops é importante para melhorar o desempenho do código e reduzir o consumo de recursos

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”.

Otimização de Loops em Algoritmos

Gabarito: letra A. A otimização de loops é fundamental para melhorar o desempenho do código e reduzir o consumo de recursos computacionais, pois loops frequentemente dominam o custo assintótico de um algoritmo (ex.: O(n), O(n²)). A prática de otimização busca minimizar o número de iterações, eliminar operações redundantes, reduzir acessos à memória e aproveitar melhor o cache. O clássico livro Introduction to Algorithms (Cormen et al.) dedica-se exaustivamente à análise de eficiência e à importância de projetar loops eficientes.

Alternativa A — ✅ Correta ⟵ GABARITO

A afirmativa reflete o consenso da ciência da computação: loops são pontos críticos de desempenho e sua otimização traz ganhos reais em tempo de execução e uso de memória. Estratégias como loop unrolling, hoisting de invariantes, redução de operações dentro do laço e escolha da estrutura de dados adequada são exemplos práticos.

Alternativa B — ❌ Incorreta

Compiladores modernos aplicam otimizações automáticas, mas não conseguem otimizar todos os loops de forma ideal — especialmente quando há dependências de dados complexas, alinhamento de memória ou lógica específica do domínio. O conhecimento do programador ainda é essencial.

Alternativa C — ❌ Incorreta

A otimização de loops está diretamente ligada à complexidade de algoritmos: loops internos determinam a ordem de grandeza de um algoritmo. Ignorá-la pode levar a soluções exponenciais ou cúbicas desnecessárias.

Alternativa D — ❌ Incorreta

A otimização de loops é amplamente aplicada em sistemas de alto desempenho, jogos, processamento de dados e aplicações embarcadas. Embora exija cuidado para não introduzir bugs, o risco é gerenciável com testes e boas práticas – não é uma razão para evitá-la.

Gabarito: letra A.

Link permanente: /questoes/qq936065