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
- Enquanto visitantes aguardavam a abertura de um museu, técnicos programaram um painel luminoso e um robô-guia para…
- Para resolver uma atividade de Matemática, um estudante anota os passos nesta ordem: ler o enunciado, identificar os…
- Em um aplicativo, o total de maçãs é calculado a partir de duas informações informadas pelo usuário: as maçãs que estão…
- No fim da tarde, a responsável por uma sala de leitura separa dois tablets para um grupo de crianças. Antes de entregar…
- Descreva, em algoritmo de alto nível (passos), como um receptor deve processar pacotes de um arquivo recebido: verificar…
- Proponha um algoritmo de alto nível para que um sistema destino reconstitu´a um arquivo recebido em pacotes que podem…
🔎 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
