Escreva em pseudocódigo um algoritmo que, dadas duas listas ordenadas de números (listaA e listaB), retorne…
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
Escreva em pseudocódigo um algoritmo que, dadas duas listas ordenadas de números (listaA e listaB), retorne uma lista ordenada contendo todos os elementos sem duplicatas.
✍️ Questão dissertativa: veja abaixo a resposta esperada e a explicação.
Resposta esperada
// Entrada: listaA[1..n], listaB[1..m] função mergeSemDuplicatas(listaA, listaB) i <- 1; j <- 1 resultado <- [] enquanto i <= comprimento(listaA) e j <= comprimento(listaB) faça se listaA[i] < listaB[j] então se vazio(resultado) ou resultado[ultimo] != listaA[i] então anexar(resultado, listaA[i]) fimse i <- i + 1 senão se listaA[i] > listaB[j] então se vazio(resultado) ou resultado[ultimo] != listaB[j] então anexar(resultado, listaB[j]) fimse j <- j + 1 senão // iguais se vazio(resultado) ou resultado[ultimo] != listaA[i] então anexar(resultado, listaA[i]) fimse i <- i + 1; j <- j + 1 fimse fimEnquanto enquanto i <= comprimento(listaA) faça se resultado[vazio] ou resultado[ultimo] != listaA[i] então anexar(resultado, listaA[i]) fimse i <- i + 1 fimEnquanto enquanto j <= comprimento(listaB) faça se resultado[vazio] ou resultado[ultimo] != listaB[j] então anexar(resultado, listaB[j]) fimse j <- j + 1 fimEnquanto retornar resultado fimFunção Explicação: o algoritmo faz o passo de fusão (merge) percorrendo ambas as listas com dois índices e evita duplicatas checando o último elemento anexado. Complexidade O(n+m).
Explicação
O algoritmo utiliza a técnica de mesclagem para percorrer simultaneamente as duas listas ordenadas, garantindo que todos os elementos sejam considerados. A verificação do último elemento anexado evita a inclusão de duplicatas, mantendo a lista resultado única. A complexidade O(n+m) é eficiente, pois cada lista é percorrida uma única vez.
Raio-X da questão
listas ordenadas
avaliacao
listas e arrays · algoritmos de ordenação
Revisar como manipular listas e algoritmos de ordenação.
O aluno pode confundir a lógica de mesclar listas com a de ordenar elementos, resultando em duplicatas na lista final.
ciencia_tecnologia
pensamento_critico
abstrato
Questões parecidas com resolução
- Escreva em pseudocódigo um algoritmo que una duas listas ordenadas de números (listaA e listaB) em uma única lista…
- Projete um algoritmo em pseudocódigo que mescle duas listas ordenadas (A e B) em uma única lista ordenada crescente…
- Dadas duas listas ordenadas de números, qual algoritmo e estrutura de dados usar para produzir uma única lista ordenada…
- Escreva um pseudocódigo que, dada uma lista A de n inteiros, percorra pares ordenados (i,j) com i<j usando loops…
- Como evitar que o mesmo bairro apareça duas vezes na rota quando os pedidos chegam por canais diferentes? Em um ponto de…
- Projete um algoritmo em pseudocódigo que receba uma lista L de n inteiros (com repetições possíveis) e retorne uma nova…
🔎 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
