GeraProva GeraProva Provas com IA para professores do Brasil
Computação7º anoBNCC EF07CO03Difícil⏱ longo

Projete um algoritmo em pseudocódigo que, dado um conjunto de N intervalos (cada intervalo com campos 'inicio'…

Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva

Habilidade BNCC EF07CO03

Construir soluções computacionais de problemas de diferentes áreas do conhecimento, de forma individual e colaborativa, selecionando as estruturas de dados e técnicas adequadas, aperfeiçoando e articulando saberes escolares.

Fonte: Base Nacional Comum Curricular (MEC).

Questão

Projete um algoritmo em pseudocódigo que, dado um conjunto de N intervalos (cada intervalo com campos 'inicio' e 'fim'), selecione o maior subconjunto de intervalos não sobrepostos. Indique a estrutura de dados usada e analise a complexidade.

✍️ Questão dissertativa: veja abaixo a resposta esperada e a explicação.

Resposta esperada

Estruturas de dados: lista/array para armazenar os intervalos; resultado em lista; operação de ordenação por chave (fim). Pseudocódigo: 1. function SelecionarMaximo(intervalos): 2. ordenar intervalos por fim ascendente 3. selecionados := lista vazia 4. ultimoFim := -infinito 5. for cada intervalo in intervalos: 6. if intervalo.inicio >= ultimoFim: 7. selecionados.adicionar(intervalo) 8. ultimoFim := intervalo.fim 9. return selecionados Justificativa de correção: ordenar por tempo de fim e sempre escolher o intervalo com menor fim disponível é uma estratégia gulosa que maximiza o número de intervalos não sobrepostos. Pelo argumento de troca, qualquer solução ótima pode ser transformada para usar a escolha gulosa sem reduzir o número de intervalos. Complexidade: ordenar custa O(N log N); varredura linear custa O(N); complexidade total O(N log N). Espaço adicional O(N) para armazenar a lista de resultados.

Explicação

A abordagem utiliza uma estratégia gulosa ao ordenar os intervalos pelo tempo de fim, garantindo que sempre que um novo intervalo é selecionado, ele não sobrepõe os já escolhidos. Essa escolha maximiza a quantidade de intervalos não sobrepostos, pois prioriza os que terminam mais cedo, permitindo mais espaço para intervalos subsequentes. A análise de complexidade demonstra que, apesar do custo da ordenação, a solução é eficiente e utiliza espaço adicional proporcional ao número de intervalos.

Raio-X da questão

Dificuldade Difícil
Bloom Criar
Leitura alto
Discriminação alto
Peso pedagógico alto
Autonomia do enunciado completo
Cobertura da habilidade multipla
🧪 Simulado🩺 Diagnóstico🧮 Exige cálculo🏠 Cotidiano🔗 Interdisciplinar⭐ Representativa✍️ interpretativa🧩 desafio
🎯 Conceito central

algoritmos de intervalos

📌 Objetivo

avaliacao

🧱 Pré-requisitos

estruturas de dados · algoritmos básicos

📚 Reveja

Revisar algoritmos de seleção de intervalos e suas complexidades.

⚠️ Erro mais comum

O aluno pode confundir a lógica de seleção de intervalos, escolhendo intervalos que se sobrepõem em vez de garantir que sejam não sobrepostos.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

pensamento_critico

🏫 Contexto

abstrato

Questões parecidas com resolução

Todas as questões de Programação - Projetos com programaçã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

Ocorreu um erro inesperado. Recarregar X

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.