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

Para detectar duplicatas em uma lista de n dados, qual abordagem tem melhor complexidade média: comparar cada…

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

Para detectar duplicatas em uma lista de n dados, qual abordagem tem melhor complexidade média: comparar cada par (O(n^2)) ou usar uma estrutura conjunto (hash) inserindo e verificando cada elemento?

  1. A) Comparar cada par é sempre mais rápido, pois evita os desafios dos conjuntos.
  2. B) Usar uma lista é melhor, pois é mais simples e clara para o programador.
  3. C) Usar um conjunto (hash) verificando presença durante inserção, com complexidade média O(n)
  4. D) Usar comparações em ordem crescente reduz a complexidade para O(n).
  5. E) Estruturas em árvore são sempre mais rápidas para verificar duplicatas que conjuntos.

✅ Resposta correta: alternativa C

Resolução passo a passo

  1. Analise o problema. Temos uma lista de n elementos e queremos saber se existe algum valor repetido. A abordagem de comparar cada par testa todas as combinações de dois elementos, o que dá cerca de n(n-1)/2 comparações, ou seja, complexidade O(n^2).
  2. Analise a abordagem com conjunto (hash). Percorremos a lista uma vez. Para cada elemento, verificamos se ele já está no conjunto; se estiver, há duplicata; se não estiver, inserimos. Cada verificação e inserção em uma tabela hash tem custo médio constante, O(1), e como são n elementos, o custo médio total é O(n).
  3. Conclua. A alternativa C está correta, pois descreve exatamente essa estratégia, com complexidade média O(n), que é melhor que O(n^2) para listas grandes.
  4. Por que as outras estão erradas. A afirma que comparar pares é sempre mais rápido, o que é falso, pois o custo quadrático cresce muito mais rápido. B afirma que listas são melhores, mas a busca em lista é linear, o que mantém a complexidade quadrática. D afirma que ordenar reduz a complexidade para O(n), mas ordenar custa O(n log n) e a checagem depois disso exige mais passos. E afirma que árvores são sempre mais rápidas que conjuntos, o que é falso, pois a busca em hash tem custo médio O(1) enquanto a árvore balanceada tem O(log n).

💡 Dica: Compare as complexidades médias das abordagens apresentadas.

Alternativa por alternativa

A Erradaerro: Conceituala que mais engana

Acredita que a simplicidade de comparar todos os pares compensa o custo, confundindo rapidez com ausência de estruturas auxiliares.

Por que engana: Confundir a complexidade de comparação de pares com a inserção em estruturas de conjunto, subestimando a eficiência do hash.

B Erradaerro: Conceitual

Supõe que a clareza do código de uma lista justifica o uso, sem perceber que a busca linear em lista mantém o custo quadrático.

C Correta

Comparação par a par requer O(n^2). Um conjunto (hash) permite verificar/inserir cada elemento em tempo médio O(1), resultando em O(n) no total.

D Erradaerro: Procedimental

Imagina que ordenar ou comparar em ordem crescente elimina trabalho, sem considerar que a ordenação custa O(n log n) e que a comparação ainda precisa de n(n-1)/2 testes.

E Erradaerro: Conceitual

Confunde a ideia de estrutura hierárquica com desempenho, achando que árvores sempre superam conjuntos, quando a busca em hash é média O(1) e a árvore é O(log n).

Raio-X da questão

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

complexidade de algoritmos

📌 Objetivo

avaliacao

🧱 Pré-requisitos

complexidade de algoritmos · estruturas de dados

📚 Reveja

Revisar conceitos de complexidade de algoritmos e estruturas de dados.

⚠️ Erro mais comum

Confundir a complexidade de comparação de pares com a inserção em estruturas de conjunto, subestimando a eficiência do hash.

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