Questão nº 37
Questão de Tecnologia da Informação · FGV TCE-TO 2022 (nº 37)
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 é:
- A1
- BN (alternativa correta)
- CN²
- DN log N
- E
Resposta comentada
Gabarito Alternativa B
A complexidade de um algoritmo é uma medida de como o tempo de execução ou o espaço em memória que ele consome cresce à medida que o tamanho da entrada (geralmente denotado por ) aumenta. Usamos a notação Big O () para expressar essa taxa de crescimento no pior caso.
(A) Incorreta: A complexidade (constante) significa que o tempo de execução é fixo, independentemente do tamanho do array. Para contar zeros, é preciso olhar cada elemento, então o tempo varia com o tamanho do array.
(B) Correta: A complexidade (linear) significa que o tempo de execução cresce proporcionalmente ao número de elementos no array. Para contar todos os zeros em um array não ordenado, o algoritmo precisa, no pior caso, inspecionar cada um dos elementos uma única vez. Se o array tem elementos, ele fará aproximadamente operações de comparação, o que caracteriza uma complexidade linear.
(C) Incorreta: A complexidade (quadrática) indica que o tempo cresce com o quadrado do número de elementos. Isso geralmente ocorre com loops aninhados (um loop dentro do outro), o que não é necessário para uma simples contagem.
(D) Incorreta: A complexidade é comum em algoritmos de ordenação eficientes ou busca em estruturas de dados específicas. Contar elementos em um array não ordenado não se beneficia desse tipo de abordagem.
(E) Incorreta: A complexidade (exponencial) representa um crescimento extremamente rápido e é típica de problemas muito complexos que exigem testar muitas combinações, o que está muito além da necessidade de uma simples contagem.
Fonte: FGV TCE-TO 2022 Analista Técnico - Tecnologia da Informação (Caderno Tipo 1). Reproduzida para fins de estudo.