Pular para o conteúdo principal

Questão de Algoritmos e Estrutura de Dados — Algoritmos — FGV 2022

Algoritmos e Estrutura de DadosAlgoritmos
Código
fg054947
Banca
FGV
Órgão
TCE-TO
Ano
2022
Nível
Superior
Cargo
Analista Técnico - Tecnologia da Informação
Dado um array unidimensional X, contendo milhares de números inteiros não ordenados, a complexidade de um algoritmo que faz a contagem de números iguais a zero presentes em X é:
  1. A1
  2. BN
  3. C
  4. DN log N
  5. E2N
Revelar gabarito e comentário

GabaritoB — N

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 de Algoritmos: Contagem em Array

Gabarito: letra B. A contagem de elementos iguais a zero em um array unidimensional exige percorrer todos os N elementos uma única vez, resultando em complexidade linear O(N). Nenhum outro fator altera essa análise — a cada elemento verifica-se se é zero, operação de tempo constante, totalizando N operações.

A questão testa o entendimento básico de análise assintótica: para contar ocorrências em um vetor não ordenado, não há como evitar visitar cada posição ao menos uma vez. Isso contrasta com algoritmos como busca binária (que exigem ordenação) ou ordenação (O(N log N) ou O(N²)).

Alternativa A — ❌ Incorreta

Complexidade constante O(1). Para contar zeros, é impossível saber o resultado sem examinar todos os elementos. Exceto se o array já for conhecido, o que não é o caso.

Alternativa B — ✅ Correta ⟵ GABARITO

Complexidade linear O(N). O algoritmo executa uma iteração sobre todo o array, verificando cada elemento. A operação de comparação e incremento é de tempo constante, portanto o custo total é proporcional a N.

Alternativa C — ❌ Incorreta

Complexidade quadrática O(N²). Isso ocorreria, por exemplo, com dois loops aninhados (comparar cada par de elementos), mas a contagem simples não exige tal estrutura.

Alternativa D — ❌ Incorreta

Complexidade O(N log N). É típica de algoritmos de ordenação eficientes (merge sort, quicksort) ou de divisão e conquista. A contagem não requer ordenação ou divisão recursiva.

Alternativa E — ❌ Incorreta

Complexidade 2N. Embora assintoticamente seja O(N) (constantes são desprezadas na notação Big O), a alternativa oferece um valor exato, e a análise padrão simplifica para N. Além disso, o algoritmo conta zeros com uma única passada, não duas. Se cada elemento fosse verificado duas vezes, ainda seria linear, mas a banca considera que a resposta correta é simplesmente N.

PEGA ESSA DICA!

Em análise de complexidade, lembre-se: contagem de elementos em um array não ordenado é sempre O(N) — você precisa percorrer todos os dados. Compare com busca de um elemento (pode ser O(1) em hash, O(log N) em árvore balanceada, O(N) em lista linear).

Gabarito: letra B

Link permanente: /questoes/fg054947