Para eliminar duplicatas de um vetor de n registros usando uma estrutura de busca baseada em hashing…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
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 eliminar duplicatas de um vetor de n registros usando uma estrutura de busca baseada em hashing (conjunto), qual complexidade média se espera para o processo?
- A) O(1) — sempre serão necessárias operações mínimas para eliminar duplicatas.
- B) O(log n) — a complexidade é proporcional ao logaritmo do número de registros.
- C) O(n log n) — precisamos ordenar o vetor antes de eliminar duplicatas.
- D) O(n) em média — cada inserção/verificação é amortizada O(1).
- E) O(n²) — como cada elemento deve ser comparado com todos os outros.
✅ Resposta correta: alternativa D
Resolução passo a passo
- Um conjunto baseado em hashing (tabela hash) permite verificar se um registro já existe e inseri-lo em tempo médio constante, ou seja, O(1) por operação.
- Como o vetor tem n registros, percorremos cada um uma única vez, fazendo uma verificação e possivelmente uma inserção no conjunto para cada um.
- Logo, o custo total médio é n vezes O(1), resultando em O(n) em média. Isso corresponde à alternativa D, que é também o gabarito oficial.
- A alternativa A está errada porque O(1) é o custo de uma única operação, não do processo inteiro, que envolve n registros.
- A alternativa B está errada porque O(log n) é típico de estruturas como árvores balanceadas, não de tabelas hash com acesso médio constante.
- A alternativa C está errada porque ordenar antes exigiria O(n log n), mas o uso de hashing dispensa a ordenação.
- A alternativa E está errada porque comparar cada elemento com todos os outros seria a abordagem ingênua, que o hashing evita.
- Observação: a complexidade média assume boa distribuição das chaves e função hash adequada; no pior caso, colisões podem degradar a operação para O(n) por inserção, levando a O(n²) no total, mas isso não é o caso médio esperado.
💡 Dica: Considere as propriedades de estruturas de dados e suas complexidades.
Alternativa por alternativa
Confunde o custo de uma única operação em tabela hash com o custo total do processo, que depende de n registros processados.
Associa qualquer estrutura de busca eficiente ao logaritmo, aplicando o padrão de árvores balanceadas a uma tabela hash.
Acredita que é necessário ordenar o vetor antes de remover duplicatas, copiando a abordagem clássica por ordenação e ignorando que o conjunto dispensa essa etapa.
Por que engana: Confundir a complexidade média de operações de inserção em uma tabela hash com a complexidade de ordenação de um vetor.
Usando um conjunto (hash set), cada verificação/inserção tem custo médio constante, totalizando tempo linear sobre n.
Imagina que cada registro precisa ser comparado com todos os demais, o que descreve a busca por força bruta e não o uso de hashing, onde a verificação é direta pela chave.
Raio-X da questão
complexidade de algoritmos
avaliacao
complexidade de algoritmos · hashing e estruturas de dados
Revisar conceitos de complexidade média em estruturas de dados.
Confundir a complexidade média de operações de inserção em uma tabela hash com a complexidade de ordenação de um vetor.
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…
- Considere uma lista ligada não ordenada com n elementos. Qual estratégia que usa uma estrutura auxiliar permite remover…
- Projete um algoritmo em pseudocódigo que remova duplicatas de uma lista de registros usando uma tabela hash; descreva a…
- Um algoritmo percorre uma lista de n elementos e atualiza um dicionário/hashtable com a frequência de cada elemento em…
- Dada uma lista de dados com repetições, qual método preservando a ordem dos primeiros aparecimentos tem complexidade…
- Em um algoritmo que deve verificar rapidamente se um código de estudante já existe em uma grande coleção de dados, qual…
🔎 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
