Dada uma lista de dados com repetições, qual método preservando a ordem dos primeiros aparecimentos tem…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Identificar as principais formas de organizar e representar a informação de maneira estruturada (matrizes, registros, listas e grafos) ou não estruturada (números, palavras, valores verdade).
Fonte: Base Nacional Comum Curricular (MEC).Questão
Dada uma lista de dados com repetições, qual método preservando a ordem dos primeiros aparecimentos tem complexidade média linear? Cite a estrutura usada e o procedimento curto (use termos hash ou conjunto).
- A) Um array fixo que descarta elementos repetidos conforme aparecem.
- B) Um conjunto ordenado, que armazena elementos em ordem crescente.
- C) Um vetor dinâmico que permite a duplicação de elementos.
- D) Usar uma lista ligada para armazenar todos os elementos sem duplicatas.
- E) Usar um conjunto (hash set) para rastrear elementos vistos e construir uma nova lista adicionando apenas elementos não vistos; complexidade média O(n).
✅ Resposta correta: alternativa E
Resolução passo a passo
- O problema pede remover duplicatas de uma lista mantendo a ordem da primeira aparição, com complexidade média linear. Passo 2: Verificar cada elemento percorrendo a lista já construída custa O(n^2), porque cada checagem percorre uma parte da lista. Passo 3: Um conjunto baseado em hash (hash set) permite verificar se um elemento já foi visto em tempo médio constante, O(1). Passo 4: Basta percorrer a lista original uma única vez: para cada elemento, consulta-se o conjunto; se ele não estiver, adiciona-se ao conjunto e à nova lista; se já estiver, descarta-se. Passo 5: Como são n elementos, cada um com custo médio O(1), o total é O(n) em média. A ordem é preservada porque a nova lista é montada na ordem de leitura. Passo 6: A alternativa A está errada, pois um array fixo não guarda o histórico de elementos vistos e não identifica repetições sem uma busca. Passo 7: A alternativa B está errada, pois um conjunto ordenado reorganiza os elementos em ordem crescente, perdendo a ordem original, e cada operação custa O(log n). Passo 8: A alternativa C está errada, pois um vetor dinâmico apenas cresce ao ser preenchido e não remove duplicatas. Passo 9: A alternativa D está errada, pois uma lista ligada sem controle dos vistos exige percorrer a lista inteira para detectar repetições, resultando em O(n^2). Passo 10: Portanto, o gabarito E está correto e é a única alternativa que combina estrutura de busca rápida com a construção ordenada da nova lista.
💡 Dica: Considere o uso de um conjunto para armazenar os elementos únicos.
Alternativa por alternativa
Acredita que basta descartar repetidos conforme aparecem, sem uma estrutura auxiliar que registre o que já foi visto.
Por que engana: Confundir a utilização de um vetor dinâmico com a preservação da ordem dos elementos, levando a uma solução ineficiente.
Confunde a exigência de preservar a ordem dos primeiros aparecimentos com ordenação, achando que a solução é reordenar os elementos.
Interpreta o termo dinâmico como solução para repetições, sem perceber que permitir duplicação é justamente o problema a ser evitado.
Acha que usar uma lista ligada já elimina duplicatas e não percebe que verificar repetição exige percorrer a lista inteira a cada elemento.
A verificação de existência num hash set é O(1) em média; assim percorre-se a lista uma vez e mantém-se a ordem dos primeiros aparecimentos enquanto elimina duplicatas.
Raio-X da questão
método hash
avaliacao
estruturas de dados · complexidade de algoritmos
Revisar conceitos de estruturas de dados e complexidade de algoritmos.
Confundir a utilização de um vetor dinâmico com a preservação da ordem dos elementos, levando a uma solução ineficiente.
ciencia_tecnologia
pensamento_critico
abstrato
Questões parecidas com resolução
- Para detectar duplicatas em uma lista de n dados, qual abordagem tem melhor complexidade média: comparar cada par…
- Ao projetar um algoritmo que agrupa registros de alunos por turma e precisa manter a ordem de inserção enquanto permite…
- Em um algoritmo que processa uma lista de alunos como dados e precisa evitar registros duplicados, qual estrutura de…
- Considere uma lista ligada não ordenada com n elementos. Qual estratégia que usa uma estrutura auxiliar permite remover…
- Para detectar duplicatas em uma matriz de registros 'dados' onde cada registro tem uma chave 'id', qual estrutura de…
- Você precisa armazenar uma coleção onde testar a existência de um elemento seja muito rápido e a ordem dos elementos não…
🔎 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
