Em uma Árvore Binária de Busca (BST) balanceada, qual das se...

Próximas questões
Com base no mesmo assunto
Q2542332 Algoritmos e Estrutura de Dados
Em uma Árvore Binária de Busca (BST) balanceada, qual das seguintes operações geralmente exibe uma complexidade de tempo média de O (log n), considerando a estrutura balanceada da árvore?
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: D - Inserção de um novo nó, remoção de um nó e busca por um elemento.

Vamos entender o porquê dessa resposta e explorar o que é uma Árvore Binária de Busca (BST) balanceada.

Uma Árvore Binária de Busca (BST) é uma estrutura de dados que mantém seus elementos organizados de forma hierárquica. Em uma BST, para cada nó, todos os elementos da subárvore à esquerda são menores que o nó, e todos os elementos da subárvore à direita são maiores. Isso facilita operações de busca, inserção e remoção.

Quando a BST está balanceada, a profundidade (ou altura) da árvore é minimizada, o que ajuda a manter a eficiência das operações. Em análises de complexidade, dizemos que as operações têm complexidade de tempo O(log n) em média, onde n é o número de nós na árvore.

No contexto de uma BST balanceada, as operações típicas são:

  • Inserção: Colocar um novo nó na árvore.
  • Remoção: Remover um nó existente da árvore.
  • Busca: Procurar um elemento na árvore.

Vamos analisar cada alternativa:

Alternativa A menciona "Inserção de um novo nó e remoção de um nó". Ambas as operações têm, de fato, complexidade média de O(log n) em uma BST balanceada, mas não cobre todas as operações listadas na alternativa correta (D).

Alternativa B menciona "Remoção de um nó e busca por um elemento". Novamente, ambas as operações estão corretas quanto à complexidade de O(log n), mas falta a inclusão da operação de inserção.

Alternativa C menciona "Inserção de um novo nó e busca por um elemento". Essas operações também têm a complexidade de O(log n), mas falta a remoção.

Portanto, a Alternativa D é a mais completa, pois cobre todas as operações mencionadas (inserção, remoção e busca), todas com complexidade média de O(log n) em uma BST balanceada.

Gostou do comentário? Deixe sua avaliação aqui embaixo!

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

O(n): Parque de Diversões - O algoritmo precisa iterar sobre todos os elementos uma vez. O tempo de operação cresce diretamente proporcional ao número de elementos. Exemplo: Ler cada página do livro uma por uma.

O(log n): Jogo de Adivinhação - Cada tentativa elimina metade dos números, crescimento mais lento. O tempo de operação cresce lentamente, à medida que o número de elementos aumenta. Exemplo: Dividir repetidamente o livro ao meio até encontrar a página correta.

O(n^2): Organização de Festas - Verificação de todas as combinações possíveis entre convidados, crescimento rápido. O tempo de operação cresce proporcionalmente ao quadrado do número de elementos. Exemplo: Comparar cada página do livro com todas as outras páginas. Se o algoritmo realiza uma operação O(n) várias vezes, como dois loops aninhados, é O(n^2).

Fui por eliminação na tentativa de encontrar a mais completa.

A alternativa D é a única que cobre todas as operações relevantes com O(log n), enquanto as outras alternativas falham em incluir todas as operações ou cobrir completamente todas as possibilidades.

GABARITO -> D

Quando se tem uma árvore de busca BALANCEADA, as operações ocorrerão com complexidade de O(log N). Isso porque, tanto para inserir, remover ou buscar um elemento, percorre-se a árvore, dividindo-a a cada iteração pela metade. A única diferença entre o que ocorre entre essas três operações (inserção, remoção e busca), é que na busca retorna-se o elemento, confirma-se que ele encontra-se na árvore. Enquanto nas operações de Inserção e Exclusão, tem-se um passo adicional que é verificar se após a inserção/remoção a árvore encontra-se balanceada. Se não for o caso, deve ser feitas as operações de balanceio. Essas operações não interferem na complexidade do algoritmo, e portanto todas elas são O(log N).

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo