Um programador decidiu utilizar, em determinado sistema de a...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
A alternativa correta é a B - O(log n).
Vamos entender por que essa é a resposta correta e analisar as demais alternativas.
Tema da Questão: A questão aborda a complexidade de tempo da pesquisa em uma árvore AVL, uma estrutura de dados balanceada utilizada para manter operações eficientes.
Árvore AVL: Uma árvore AVL é uma árvore binária de busca que se mantém balanceada, ou seja, a diferença de altura entre as subárvores esquerda e direita de qualquer nó é de no máximo 1. Isso garante que a altura da árvore seja, no máximo, O(log n), onde n é o número de elementos na árvore.
Complexidade de Tempo: A complexidade de tempo de uma operação de pesquisa em uma árvore binária de busca é proporcional à altura da árvore. Em uma árvore AVL, devido ao seu balanceamento, a altura é O(log n). Portanto, a operação de pesquisa, no pior caso, também terá complexidade O(log n).
Justificativa das Alternativas:
Alternativa A - O(1): A complexidade O(1) indica tempo constante, significando que a operação de pesquisa seria realizada em tempo fixo, independentemente do número de elementos. Isso não é possível em árvores AVL, pois a pesquisa requer a travessia da árvore, que depende da sua altura.
Alternativa B - O(log n): Como explicado, a árvore AVL é balanceada e sua altura é O(log n). Assim, a pesquisa terá a mesma complexidade, pois, no pior caso, será necessário comparar em cada nível da árvore até o nível máximo, que é logaritmo base 2 do número de elementos.
Alternativa C: A imagem não está disponível, mas se fosse uma expressão que representasse uma complexidade superior a O(log n), também estaria incorreta, pois a árvore AVL garante um balanceamento que mantém a altura da árvore logarítmica.
Alternativa D: Novamente, a imagem não está disponível, mas se for uma expressão que não corresponde à complexidade O(log n), também estaria incorreta pelos mesmos motivos já discutidos.
Alternativa E: Mais uma vez, a imagem não está disponível. Qualquer complexidade diferente de O(log n) não se aplicaria corretamente à pesquisa em uma árvore AVL.
Conclusão: A árvore AVL, devido ao seu balanceamento, garante que a pesquisa tenha uma complexidade de tempo no pior caso igual a O(log n). Por isso, a alternativa correta é B.
Espero que essa explicação ajude a esclarecer suas dúvidas sobre a complexidade de tempo em árvores AVL. Se tiver mais perguntas, sinta-se à vontade para perguntar!
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
A propósito, o simbolo da ferradura (ÔMEGA) refer-se ao melhor caso, o do sandwich (TETA) ao caso médio e o BIG-O , O(n) ao pior caso.
A árvore AVL é uma árvore binária de busca balanceada.
Árvores binárias de busca não balanceadas podem - no pior caso - crescer apenas para um lado transformando-se em uma lista. Nesse caso o tempo de busca torna-se O(n), onde n é o tamanho da lista.
No caso da arvore AVL, que garante uma árvore com fator de desbalanceamento no máximo 1, isto á | alturaDaSubarvoreDireita - alturaDaSubarvoreEsquerda | <= 1 , para todos os nós, o pior caso do algoritmo torna-se O( log n), ou seja, o elemento procurado é uma folha da arvore, e a altura de uma arvore de n elementos é log n.
OBS: log n , sendo log na base 2, não na base 10.
A complexidade no pior caso a árvore AVL é O( log n)
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo