Projete um algoritmo em pseudocódigo que receba uma lista L de n inteiros e retorne uma nova lista em que…
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 receba uma lista L de n inteiros e retorne uma nova lista em que todos os números pares aparecem antes dos ímpares, mantendo a ordem relativa original (estável). Explique a estratégia e analise complexidade temporal e espacial.
✍️ Questão dissertativa: veja abaixo a resposta esperada e a explicação.
Resposta esperada
Pseudocódigo: criar listas pares=[] e impares=[]; para cada x em L: se x%2==0 então pares.append(x) senão impares.append(x); retornar pares concatenado com impares. Estratégia: varredura única que separa preservando ordem relativa. Complexidade: tempo O(n), espaço O(n) adicional (duas listas auxiliares).
Explicação
A solução proposta utiliza uma abordagem eficiente ao percorrer a lista apenas uma vez, separando os números em duas listas distintas, o que garante a preservação da ordem original. A complexidade temporal é linear, O(n), pois cada elemento é processado uma única vez, enquanto a complexidade espacial é O(n) devido ao uso de duas listas auxiliares para armazenar os pares e ímpares. Essa estratégia é estável, pois mantém a posição relativa dos elementos iguais na lista original.
Raio-X da questão
algoritmo de ordenação
avaliacao
algoritmos de ordenação · estrutura de dados
Revisar conceitos de algoritmos e complexidade de tempo e espaço.
O aluno pode confundir a ordenação estável com a ordenação instável, não mantendo a ordem relativa dos elementos iguais.
ciencia_tecnologia
pensamento_critico
abstrato
Questões parecidas com resolução
- Projete um algoritmo, em pseudocódigo, que receba uma lista ligada simples L com n nós e reorganize os nós in-place para…
- Projete um algoritmo em pseudocódigo que receba uma lista L de n inteiros (com repetições possíveis) e retorne uma nova…
- 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 uma função recursiva separar_indices(L) que recebe uma lista L e retorna duas listas: elementos…
- Projete em pseudocódigo uma função recursiva duplicar(L) que recebe uma lista L de inteiros e retorna uma nova lista em…
- Projete em pseudocódigo uma função recursiva que verifica se uma lista de inteiros L está estritamente crescente (cada…
🔎 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
