GeraProva GeraProva Provas com IA para professores do Brasil
Computação3ª sérieBNCC EM13CO03Difícil⏱ medio

Considere o pseudocódigo: for i from 1 to n: for j from 1 to n: if A[i] == A[j] then count ? count + 1. Qual é…

Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva

Habilidade BNCC EM13CO03

Identificar o comportamento dos algoritmos no que diz respeito ao consumo de recursos como tempo de execução, espaço de memória e energia, entre outros.

Fonte: Base Nacional Comum Curricular (MEC).

Questão

Considere o pseudocódigo: for i from 1 to n: for j from 1 to n: if A[i] == A[j] then count ? count + 1. Qual é a complexidade temporal assintótica desse algoritmo em função de n?

  1. A) A complexidade é cúbica, O(n³).
  2. B) A complexidade é linear, O(n).
  3. C) O(n²)
  4. D) A complexidade é logarítmica, O(log n).
  5. E) A complexidade é constante, O(1).

✅ Resposta correta: alternativa C

Resolução passo a passo

  1. Analise a estrutura do pseudocódigo. Há dois laços aninhados, um de i de 1 até n e outro de j de 1 até n, portanto o corpo do laço interno é executado n vezes para cada valor de i.
  2. Conte as execuções do bloco mais interno. Como i percorre n valores e, para cada um, j percorre n valores, o comando 'if A[i] == A[j]' é executado n x n = n^2 vezes.
  3. Verifique o custo do corpo do laço. A comparação entre A[i] e A[j] e, no caso verdadeiro, o incremento de count são operações de tempo constante, ou seja, cada uma custa O(1).
  4. Some os custos. O total é n^2 vezes O(1), que resulta em O(n^2), independentemente de quantas comparações sejam verdadeiras, pois o pior caso e o caso geral executam o mesmo número de iterações.
  5. Compare com as alternativas. A alternativa C, O(n^2), está correta. A alternativa A esta errada porque não há um terceiro laço aninhado que justifique n^3. A alternativa B esta errada porque um único laço daria O(n), mas aqui há dois laços aninhados. A alternativa D esta errada porque a complexidade logarítmica exigiria divisão do problema a cada passo, o que não ocorre. A alternativa E esta errada porque o custo cresce com n e não é constante.

💡 Dica: Analise a estrutura de repetição e a condição do if.

Alternativa por alternativa

A Erradaerro: Procedimentala que mais engana

O aluno pode ter contado um terceiro nível de repetição ou supôs que cada comparação dentro de dois laços gera outro laço, somando um fator n a mais.

Por que engana: Confundir a complexidade quadrática com a linear, acreditando que a comparação de elementos em um loop aninhado é O(n).

B Erradaerro: Interpretação

O aluno viu a variável n e associou o algoritmo a uma única varredura do vetor, ignorando que o laço interno também percorre n elementos a cada iteração do externo.

C Correta

Existem dois laços aninhados que percorrem até n iterações cada; operações internas são O(1), resultando em tempo proporcional a n×n.

D Erradaerro: Conceitual

O aluno associou o algoritmo a buscas binárias ou a divisões sucessivas do problema, confundindo laços aninhados com estratégias de divisão e conquista.

E Erradaerro: Senso comum

O aluno pensou que, como a operação dentro do laço é simples, o algoritmo teria custo constante, esquecendo que essa operação é repetida n^2 vezes.

Raio-X da questão

Dificuldade Difícil
Bloom Analisar
Leitura alto
Discriminação alto
Peso pedagógico alto
Autonomia do enunciado completo
Cobertura da habilidade unica
🧪 Simulado🩺 Diagnóstico🧮 Exige cálculo🏠 Cotidiano🔗 Interdisciplinar⭐ Representativa✍️ interpretativa🧩 desafio
🎯 Conceito central

complexidade temporal

📌 Objetivo

avaliacao

🧱 Pré-requisitos

análise de algoritmos · notação assintótica

📚 Reveja

Revisar conceitos de complexidade de algoritmos e notação assintótica.

⚠️ Erro mais comum

Confundir a complexidade quadrática com a linear, acreditando que a comparação de elementos em um loop aninhado é O(n).

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

pensamento_critico

🏫 Contexto

abstrato

Questões parecidas com resolução

Todas as questões de [CONFERIR] Construir soluções baseadas no uso de algoritmos e conceitos da Computação para resolver problemas, avaliando suas qualidades e melhorando-as.

🔎 Procurar outra questão

Procure no banco do GeraProva pelo tema ou por um trecho do enunciado. Cada questão já vem com resolução comentada e a análise de cada alternativa.

Professor: monte a prova com questões como esta, com gabarito e folha de respostas, em 30 segundos. Ver planos · Blog

Ocorreu um erro inesperado. Recarregar X

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.