GeraProva GeraProva Provas com IA para professores do Brasil
Computação3ª sérieBNCC EM13CO03Média⏱ longo

Descreva em pseudocódigo um algoritmo que, dado um grafo não direcionado representado por listas de adjacência…

Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva

Habilidade BNCC EM13CO03

Identificar o comportamento dos algoritmos no que diz respeito ao consumo de recursos como tempo de execução, espaço de memória e energia, entre outros.

Fonte: Base Nacional Comum Curricular (MEC).

Questão

Descreva em pseudocódigo um algoritmo que, dado um grafo não direcionado representado por listas de adjacência e um limiar t, produza uma nova lista de adjacência contendo apenas as arestas com peso = t. Indique as variáveis-chave e analise a complexidade temporal em termos de n e m.

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

Resposta esperada

Variáveis-chave: adj_in (lista de adjacência de entrada), adj_out (lista de adjacência resultado), t (limiar), n (número de vértices), m (número de arestas), u,v,w (vértice e peso temporários), visitedEdgeSet (opcional para evitar duplicatas em grafos não direcionados). Pseudocódigo: 1. Inicialize adj_out como lista vazia para cada vértice 1..n. 2. Se desejar evitar duplicatas, inicialize visitedEdgeSet = vazio. 3. Para cada vértice u de 1 a n: 4. Para cada entrada (v, w) em adj_in[u]: 5. Se w = t então 6. Se grafo é não direcionado e (min(u,v),max(u,v)) em visitedEdgeSet então continue 7. Acrescente (v, w) em adj_out[u] 8. Se grafo é não direcionado então 9. Acrescente (u, w) em adj_out[v] 10. Adicione (min(u,v),max(u,v)) em visitedEdgeSet (se usado) Complexidade temporal: percorre-se cada lista de adjacência uma vez. Testar peso e inserir em adj_out é O(1) amortizado; com n vértices e m entradas nas listas totais, o tempo é O(n + m). Se usar visitedEdgeSet (uma tabela hash) para evitar duplicatas em grafos não direcionados, cada operação permanece O(1) amortizado, mantendo O(n + m) no total. Observações: para entrada onde cada aresta aparece duas vezes (não direcionado), o algoritmo percorre ambas as ocorrências; o uso de visitedEdgeSet permite garantir que a aresta seja adicionada uma vez em termos de lógica de construção, embora a iteração ainda examine O(m) entradas.

Explicação

O pseudocódigo apresentado aborda de forma clara a construção de uma nova lista de adjacência filtrando arestas com peso igual ao limiar t, considerando a estrutura de um grafo não direcionado. A análise da complexidade temporal é precisa, pois considera tanto o número de vértices quanto o número de arestas, garantindo que o algoritmo opere de maneira eficiente em relação ao tamanho do grafo. Além disso, a inclusão de uma estrutura para evitar duplicatas demonstra uma compreensão aprofundada das características dos grafos não direcionados.

Raio-X da questão

Dificuldade Média
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

algoritmo de grafos

📌 Objetivo

avaliacao

🧱 Pré-requisitos

listas de adjacência · complexidade temporal

📚 Reveja

Revisar conceitos de grafos e listas de adjacência.

⚠️ Erro mais comum

O aluno pode confundir a representação do grafo e acabar incluindo arestas com pesos diferentes de t na nova lista de adjacência.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

pensamento_critico

🏫 Contexto

cientifico

Questões parecidas com resolução

Todas as questões de [CONFERIR] Construir soluções baseadas no uso de algoritmos e conceitos da Computação para resolver problemas, avaliando suas qualidades e melhorando-as.

🔎 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.