Certo documento possui 1 milhão de palavras não repetidas e ...

Próximas questões
Com base no mesmo assunto
Q869144 Algoritmos e Estrutura de Dados
Certo documento possui 1 milhão de palavras não repetidas e foi editado em um editor de textos. Considerando que o editor de textos utiliza uma Árvore Binária de Busca − ABB de altura mínima para armazenar as palavras digitadas de forma a facilitar sua localização, para se localizar qualquer palavra nesta estrutura de dados serão necessárias, no máximo,
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa Correta: B - 20 comparações.

Vamos explicar detalhadamente o raciocínio por trás dessa questão para garantir uma compreensão clara e eficaz.

O enunciado menciona que um documento possui 1 milhão de palavras não repetidas, e estas palavras estão armazenadas em uma Árvore Binária de Busca (ABB) de altura mínima. Esta estrutura de dados é utilizada para facilitar a localização das palavras.

Primeiro, precisamos entender o conceito de uma Árvore Binária de Busca de altura mínima. Uma ABB de altura mínima é aquela que está balanceada, ou seja, a diferença de altura entre as subárvores esquerda e direita de qualquer nó é no máximo 1. Esta característica é crucial para otimizar o tempo de busca, inserção e remoção de elementos.

Em uma ABB balanceada, a altura da árvore é aproximadamente log2(n), onde n é o número de nós da árvore. Isso ocorre porque, em cada nível da árvore, o número de nós dobra.

No nosso problema, temos 1 milhão de palavras. Portanto, para determinar a altura da árvore, calculamos log2(1.000.000).

Sabemos que:

log2(1.000.000) ≈ 20

Isso significa que a altura da ABB é aproximadamente 20. Na pior das hipóteses, para localizar uma palavra, seriam necessárias 20 comparações, correspondendo ao número de níveis da árvore.

Justificando a Alternativa Correta:

B - 20 comparações é correta porque, com uma ABB balanceada contendo 1 milhão de palavras, a altura da árvore será cerca de 20, e é o número máximo de comparações necessárias para encontrar qualquer palavra na árvore.

Analisando as Alternativas Incorretas:

A - 1 milhão de comparações: Esta alternativa está incorreta, pois sugerir 1 milhão de comparações indica uma busca linear em uma lista desordenada, o que não se aplica a uma ABB, especialmente uma balanceada.

C - 32 comparações: Esta alternativa também está incorreta porque, para uma ABB de 1 milhão de nós, a altura da árvore é muito mais próxima de 20 do que de 32.

D - log101000000 comparações: Esta alternativa está incorreta porque está usando o logaritmo na base 10. Para árvores binárias, utilizamos o logaritmo na base 2, e log2(1.000.000) ≈ 20, não log10.

E - 2 milhões de comparações: Esta alternativa está incorreta pela mesma razão da alternativa A. Sugere uma quantidade de comparações irrealista e não aplicável a uma ABB balanceada.

Espero que esta explicação tenha esclarecido o raciocínio por trás da questão e ajudado a entender melhor o funcionamento das Árvores Binárias de Busca!

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

Esta questão é fácil de ser resolvida, se tiver um calculadora.
Busca em árvore binária tem complexidade de log na base 2.
Pegando isso como base, já podemos eliminar a, d e, restando b e c. Aí vai da noção de cada um, já que na prova não terá um calculadora. 
Gabarito: letra B. 
Log 2 (1.000.000) = 19.931 ~= 20

Jerico Mulambo, podemos dar uma avançada a mais no seu cálculo para termos uma melhor certeza da resposta na prova sem usar uma calculadora, empregando um pouco as propriedades dos logaritmos:

 

log 2 (1000000) = log 2 (10^6) = 6 . log 2 (10)  *

 

Então, a que número 2 deve ser elevado para que resulte 10? Vamos pegar por aproximação 3, já que 2^3 = 8. Então, fica assim:

 

6 . log 2 (10) = 6 . 3 ~= 18

 

A resposta mais próxima disso é a alternativa b (20).


Obs.: Conforme Jerico Mulambo disse, busca em árvore binária tem complexidade log 2 (n), onde 2 é a base e n é o número de elementos. Aliás, o algoritmo pesquisa binária (ou busca binária) também tem essa mesma complexidade.

 

* Isso vem da segunte propriedade dos logaritmos: log a (b^n) = n . log a (b)

Busca árvore binária é log (no. de elementos) na base 2, então log 10**6 na base 2.

Como se faz para tornar log de base 2 no log de base 10?

Divido o log do número que quero encontrar, só que na base 10 por log de 2 na base 10

Nesse caso específico eu tenho:

=log 10 **6 na base 10 / log 2 na base 10

Separadamente 1) log 10 **6 na base 10 = a que numero elevo 10 para chegar a 10 **6? resposta=6

e 2) log 2 na base 10 é aproximadamente 3/10

unindo 1)/2):

= 6/3/10

=6 * 10/3

=60/3

=20 (letra B)

Força Guerreiro!!!!!!

Clique para visualizar este comentário

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