Questão de Algoritmos e Estrutura de Dados — Estrutura de Dados — FUNDATEC 2023
Algoritmos e Estrutura de Dados›Estrutura 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?
AO(n)
BO(log n)
CO(n log n)
DO(n^2)
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).
1Visita cada nó uma vez
2Calcula altura das subárvores
3Confere |hd - he| ≤ 1
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).