GeraProva GeraProva Provas com IA para professores do Brasil
Matemática1ª sérieBNCC EM13MAT405Difícil⏱ longo

Dada uma tabela de frequências (símbolo ? frequência) obtida por amostragem, elabore um algoritmo em…

Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva

Habilidade BNCC EM13MAT405

Utilizar conceitos iniciais de uma linguagem de programação na implementação de algoritmos escritos em linguagem corrente e/ou matemática.

Fonte: Base Nacional Comum Curricular (MEC).

Questão

Dada uma tabela de frequências (símbolo ? frequência) obtida por amostragem, elabore um algoritmo em pseudocódigo que construa a árvore de Huffman e gere os códigos binários para cada símbolo. Explique os passos e a complexidade temporal.

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

Resposta esperada

Pseudocódigo: 1. Para cada símbolo s com frequência f: criar nó(s,f) e inserir em fila de prioridade mínima (heap) por f. 2. Enquanto heap.size > 1: a = heap.pop(); b = heap.pop(); criar nó p com freq = a.freq+b.freq e filhos a,b; heap.push(p). 3. Raiz = heap.pop(). 4. Fazer travessia DFS da raiz, acumulando '0' à esquerda e '1' à direita para obter código de cada símbolo. Complexidade: construir heap inicial O(n); cada extração/insersão é O(log n) e ocorre O(n) vezes ? O(n log n).

Explicação

O algoritmo apresentado utiliza uma fila de prioridade para construir a árvore de Huffman, garantindo que os símbolos com menor frequência sejam combinados primeiro, o que é essencial para a eficiência da codificação. A complexidade temporal é bem justificada, pois a construção inicial do heap é linear, enquanto as operações de extração e inserção, que ocorrem durante a formação da árvore, são logarítmicas em relação ao número de símbolos. Assim, a análise da complexidade total resulta em O(n log n), refletindo o desempenho esperado do algoritmo.

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

árvore de Huffman

📌 Objetivo

avaliacao

🧱 Pré-requisitos

algoritmos e estruturas de dados · codificação de dados

📚 Reveja

Revisar o algoritmo de Huffman e sua complexidade temporal.

⚠️ Erro mais comum

O aluno pode confundir a construção da árvore de Huffman com outros algoritmos de compressão, não seguindo corretamente os passos específicos para a sua implementação.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

pensamento_critico

🏫 Contexto

cientifico

Questões parecidas com resolução

Todas as questões de Leitura e interpretação de tabelas e gráficos (de colunas ou barras simples ou múltiplas) referentes a variáveis categóricas e variáveis numéricas

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