Descreva com precisão o algoritmo e as estruturas de dados (registros, hash ou listas) para um programa que…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Construir e simular algoritmos, de forma independente ou em colaboração, que resolvam problemas simples e do cotidiano com uso de sequências, seleções condicionais e repetições de instruções.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Descreva com precisão o algoritmo e as estruturas de dados (registros, hash ou listas) para um programa que mescla vários arquivos CSV por chave primária sem carregar todos os dados na memória; explique fluxo, tratamento de colisões e complexidade.
✍️ Questão dissertativa: veja abaixo a resposta esperada e a explicação.
Resposta esperada
Solução em duas abordagens: 1) Se existir um arquivo significativamente menor: carregar o menor em uma tabela hash (chave?registro). Em seguida fazer streaming do arquivo maior linha a linha, buscar na hash, gerar saída mesclada; colisões no hash tratadas por encadeamento; complexidade I/O O(N) e memória O(tamanho do menor). 2) Se todos são grandes: aplicar ordenação externa por chave (external sort) em cada arquivo e depois realizar merge-join sequencial lendo blocos; evita manter tudo em memória; complexidade dominada por custo de ordenação externa e leituras sequenciais. Em ambos casos definir registros com campos necessários, usar buffers de leitura/escrita para eficiência e validar chaves ausentes/duplicadas durante o merge.
Explicação
A solução apresentada aborda duas situações distintas para a mesclagem de arquivos CSV, garantindo eficiência em termos de uso de memória e tempo de processamento. A primeira abordagem utiliza uma tabela hash para otimizar a busca de registros, enquanto a segunda aplica ordenação externa, que é essencial quando todos os arquivos são grandes. Ambas as técnicas garantem que não seja necessário carregar todos os dados na memória, respeitando as limitações de recursos e assegurando a integridade dos dados.
Raio-X da questão
mesclagem de arquivos CSV
avaliacao
estruturas de dados · algoritmos de mesclagem
Revisar algoritmos de mesclagem e estruturas de dados adequadas.
O aluno pode descrever um algoritmo que carrega todos os dados na memória, ignorando a restrição de não fazer isso.
ciencia_tecnologia
pensamento_critico
cientifico
Questões parecidas com resolução
- Descreva um algoritmo generalizado (inclua assinatura e pseudocódigo) que receba duas coleções de registros e um…
- Projete a decomposição de alto nível de um algoritmo que integra dois conjuntos de dados escolares (registros de…
- Projete um algoritmo em pseudocódigo que remova duplicatas de uma lista de registros usando uma tabela hash; descreva a…
- Projete um algoritmo, em etapas ordenadas, para armazenar um arquivo grande em múltiplos dispositivos heterogêneos…
- Projete um algoritmo em pseudocódigo que recebe dois vetores unidimensionais de registros 'estoqueA' e 'estoqueB' (cada…
- Para ordenar grandes conjuntos de dados em memória usando a estratégia dividir e conquistar e mantendo a estabilidade…
🔎 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
