Questão de Algoritmos e Estrutura de Dados — Complexidade de Algoritmos — FGV 2021
Algoritmos e Estrutura de Dados›Complexidade de Algoritmos
Código
fg039322
Banca
FGV
Órgão
FUNSAÚDE - CE
Ano
2021
Nível
Superior
Cargo
Analista de Tecnologia da Informação - TI e Infraestrutura de Informática
Considere o pseudocódigo abaixo, que define uma função que recebe dois arrays, A1, A2, cada um com N elementos indexados a partir de 1, e retorna o número de elementos do array A1 que não aparecem em A2.function xpto(A1, A2, N)contagem=0for i=1 to Nflag=0for j=1 to Nif A1[i] == A2[j] then flag=1if flag == 0 then contagem=contagem + 1return contagemExatamente como foi codificado, o algoritmo da função xpto tem complexidade
AO(1)
BO(n)
CO(2.n)
DO(n²)
EO(2.n²)
Revelar gabarito e comentário▾
GabaritoD — O(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 do algoritmo: laços aninhados
Gabarito: letra D. O algoritmo possui dois laços for aninhados, cada um iterando N vezes, resultando em operações elementares no pior caso. Portanto, a complexidade assintótica é , independentemente de constantes multiplicativas.
A função xpto percorre cada elemento de A1 (laço externo) e, para cada um, percorre todo o array A2 (laço interno) para verificar se o elemento aparece. Isso gera exatamente comparações entre elementos. As operações de atribuição e incremento são desprezíveis na análise assintótica. Assim, a complexidade é quadrática.
1Laço externo: N iterações
2Laço interno: N iterações
3Total: N × N = N²
4Big-O: O(N²)
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
seria constante, o que não ocorre porque o tempo de execução cresce com o tamanho da entrada.
Alternativa B — ❌ Incorreta
seria linear, mas o algoritmo tem dois laços aninhados, não um único laço.
Alternativa C — ❌ Incorreta
ainda é linear (constante ignorada). O algoritmo é quadrático, não linear.
Alternativa D — ✅ Correta ⟵ GABARITO
representa exatamente a complexidade dos dois laços aninhados, cada um iterando vezes.
Alternativa E — ❌ Incorreta
é equivalente a , mas a notação Big-O desconsidera constantes multiplicativas. Embora tecnicamente correto como limite superior, a forma padrão e mais simples é . A banca considerou a notação simplificada; é a resposta esperada.
PEGA ESSA DICA!
Em análise de complexidade, foque no termo dominante e ignore constantes. Laços aninhados sem interrupções indicam complexidade multiplicativa: externo , interno , total .