Pular para o conteúdo principal

Questão de Algoritmos e Estrutura de Dados — Estrutura de Dados — FUNDATEC 2023

Algoritmos e Estrutura de DadosEstrutura de Dados
Código
qq896692
Banca
FUNDATEC
Órgão
PROCERGS
Ano
2023
Nível
Superior
Cargo
ANC - Analista em Computação - Ênfase em Administração de Dados
Suponha que você tenha uma árvore binária de busca com n nós. Qual é a complexidade de tempo para determinar se a árvore é uma árvore AVL balanceada?
  1. AO(n)
  2. BO(log n)
  3. CO(n log n)
  4. DO(n^2)
  5. EO(log^2 n)
Revelar gabarito e comentário

GabaritoA — O(n)

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Complexidade para verificar balanceamento AVL

Gabarito: letra A — a verificação se uma árvore binária de busca é AVL balanceada exige percorrer todos os nós uma vez, calculando alturas e conferindo o fator de balanceamento, resultando em complexidade O(n).

A questão testa a diferença entre a complexidade das operações em uma árvore AVL (busca, inserção, remoção: O(log n)) e a complexidade de verificar se uma árvore arbitrária obedece à propriedade AVL. Para cada nó, é necessário conhecer a altura das subárvores esquerda e direita; isso pode ser feito em uma única travessia pós-ordem, onde cada nó é visitado uma vez e o trabalho por nó é constante. Portanto, o custo total é linear no número de nós.

NÃO CAIA NESSA!

O candidato pode confundir a complexidade das operações de busca/inserção/remoção em uma AVL (O(log n)) com a complexidade de verificar se uma árvore é AVL. A verificação exige examinar todos os nós, portanto O(n).

  1. 1Visita cada nó uma vez
  2. 2Calcula altura das subárvores
  3. 3Confere |hd - he| ≤ 1
  4. 4Custo total: O(n)
LEVEL · soulevel.com.br

Alternativa A — ✅ Correta ⟵ GABARITO

Correta. Percorrer a árvore, calcular alturas dos nós e verificar a condição |hd - he| ≤ 1 para cada nó requer visitar todos os nós exatamente uma vez, resultando em O(n).

Alternativa B — ❌ Incorreta

O(log n) é a complexidade típica das operações em uma árvore AVL já balanceada, mas não da verificação de balanceamento, que precisa inspecionar todos os nós.

Alternativa C — ❌ Incorreta

O(n log n) seria o custo de, para cada nó, percorrer sua subárvore para calcular altura, o que não é necessário: as alturas podem ser computadas de forma eficiente durante uma única travessia.

Alternativa D — ❌ Incorreta

O(n²) é muito maior que o necessário — o problema é linear.

Alternativa E — ❌ Incorreta

O(log² n) também é inferior a O(n) e não corresponde ao custo de percorrer todos os nós.

PEGA ESSA DICA!

Para questões de complexidade, identifique se a operação exige percorrer toda a estrutura (O(n)) ou apenas um caminho da raiz até a folha (O(log n) em árvores balanceadas). A verificação de propriedades globais, como balanceamento, geralmente é O(n).

Gabarito: letra A.

Link permanente: /questoes/qq896692