Projete um algoritmo em pseudocódigo que remova duplicatas de uma lista de registros usando uma tabela hash…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Elaborar algoritmos que envolvam instruções sequenciais, de repetição e de seleção usando uma linguagem de programação.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Projete um algoritmo em pseudocódigo que remova duplicatas de uma lista de registros usando uma tabela hash; descreva a estrutura de dados, operações principais e a complexidade temporal e espacial.
✍️ Questão dissertativa: veja abaixo a resposta esperada e a explicação.
Resposta esperada
Estrutura: tabela hash (conjunto) para chaves únicas; lista para resultado. Pseudocódigo: result ? []; seen ? HashSet(); para cada registro r em lista: chave ? extrair_chave(r) // campo(s) que identificam r; se not seen.contains(chave): seen.add(chave); result.append(r); fim se; fim para; retornar result. Operações: lookup e insert em seen (O(1) médio). Complexidade: tempo médio O(n), espaço O(n) para o conjunto e lista de saída. Observação: escolher chave que represente campos relevantes; colisões tratadas internamente pela tabela (encadeamento ou open addressing), o que pode degradar para O(n^2) no pior caso se o hash for ruim.
Explicação
A solução utiliza uma tabela hash para garantir que apenas chaves únicas sejam armazenadas, permitindo a remoção eficiente de duplicatas. A complexidade temporal média é O(n) devido à eficiência das operações de inserção e busca na tabela hash, enquanto o espaço utilizado é O(n) para armazenar tanto as chaves únicas quanto a lista de resultados. O tratamento de colisões é mencionado, o que é crucial para manter a eficiência do algoritmo em cenários adversos.
Raio-X da questão
algoritmo de remoção de duplicatas
avaliacao
estrutura de dados · tabela hash
Revisar conceitos de tabelas hash e complexidade de algoritmos.
O aluno pode confundir a implementação de uma tabela hash com outras estruturas de dados, como listas ou arrays, não aplicando corretamente as operações de inserção e busca.
ciencia_tecnologia
pensamento_critico
abstrato
Questões parecidas com resolução
- Projete um algoritmo em pseudocódigo que detecte e remova registros duplicados em uma matriz de dados escolares (cada…
- Projete um algoritmo, em pseudocódigo, que receba uma lista ligada simples L com n nós e remova todos os nós cujos…
- Projete em pseudocódigo um algoritmo que receba uma lista de nomes de alunos (dados) e retorne a mesma lista sem…
- Projete um algoritmo em pseudocódigo que receba uma lista de nomes de alunos (entrada de dados) e retorne uma lista de…
- Projete um algoritmo em pseudocódigo que receba uma lista L de n inteiros (com repetições possíveis) e retorne uma nova…
- Considere uma lista ligada não ordenada com n elementos. Qual estratégia que usa uma estrutura auxiliar permite remover…
🔎 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
