Projete um algoritmo em pseudocódigo que recebe dois vetores unidimensionais de registros 'estoqueA' e…
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
Projete um algoritmo em pseudocódigo que recebe dois vetores unidimensionais de registros 'estoqueA' e 'estoqueB' (cada registro tem campos 'id' inteiro e 'quantidade' inteiro) e devolve um novo vetor 'estoqueC' que combina registros por 'id': para ids presentes em ambos, somar as quantidades; para ids presentes em apenas um vetor, incluir o registro original. Descreva também como o algoritmo evita duplicatas e a escolha da estrutura para busca.
✍️ Questão dissertativa: veja abaixo a resposta esperada e a explicação.
Resposta esperada
Usar um mapa (dicionário) para agregar por id é eficiente e evita duplicatas. Pseudocódigo: func combinar(estoqueA, estoqueB): mapa := novoMapa() // chave: id, valor: quantidade para cada r em estoqueA: se mapa.contem(r.id) então mapa[r.id] := mapa[r.id] + r.quantidade senao mapa[r.id] := r.quantidade para cada r em estoqueB: se mapa.contem(r.id) então mapa[r.id] := mapa[r.id] + r.quantidade senao mapa[r.id] := r.quantidade estoqueC := novoVetor() para cada (id, qtd) em mapa: append(estoqueC, registro{id: id, quantidade: qtd}) retornar estoqueC Observações: usar mapa garante busca e atualização em tempo esperado O(1) por operação, evitando duplicatas ao agregar por chave. Complexidade total esperada O(n + m) onde n e m são tamanhos dos vetores; usando apenas vetores seria necessário comparar pares (O(n·m)), mais lento.
Explicação
O uso de um mapa permite a agregação eficiente de quantidades por id, evitando a necessidade de comparações diretas entre os registros, o que tornaria o processo mais lento. A estrutura de dados escolhida garante que as operações de busca e atualização sejam realizadas em tempo constante, resultando em uma complexidade total linear em relação ao tamanho dos vetores. Isso torna o algoritmo escalável e eficiente, mesmo para grandes volumes de dados.
Raio-X da questão
algoritmo de combinação de vetores
avaliacao
vetores unidimensionais · estruturas de dados
Revisar conceitos de vetores e estruturas de dados em algoritmos.
O aluno pode confundir a lógica de combinação, somando quantidades de ids que não estão presentes em ambos os vetores.
ciencia_tecnologia
pensamento_critico
abstrato
Questões parecidas com resolução
- Projete um algoritmo em pseudocódigo que receba um vetor de registros 'colaboradores' (campos: id, nome, setor, salario)…
- Projete em pseudocódigo um algoritmo que recebe uma matriz de registros 'estoque' (linhas = armazéns, colunas =…
- Projete um algoritmo em pseudocódigo que mescle duas listas ordenadas (A e B) em uma única lista ordenada crescente…
- Projete um algoritmo em pseudocódigo que, dado um vetor V de n inteiros e um inteiro k, determine se existem índices i <…
- Descreva um algoritmo generalizado (inclua assinatura e pseudocódigo) que receba duas coleções de registros e um…
- Projete um algoritmo em pseudocódigo que, dado um vetor de números inteiros com tamanho par, percorra o vetor em pares…
Todas as questões de Organização e representação da informaçã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
