Considere que na Defensoria há uma lista ordenada com o nome...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Olá, aluno! Vamos analisar a questão e entender a justificativa para a alternativa correta. A alternativa correta é B - 10 comparações.
Esta questão aborda o tema de pesquisa binária, um algoritmo eficiente para localizar elementos em uma lista ordenada. A pesquisa binária é uma técnica que divide repetidamente a lista ao meio para determinar se o elemento alvo está na metade superior ou inferior, até que o elemento seja encontrado ou as sublistas não possam ser subdivididas.
Para resolver essa questão, é necessário compreender quantas comparações são necessárias, no máximo, ao utilizar a pesquisa binária em uma lista ordenada com 1000 elementos.
Justificativa para a alternativa correta:
A pesquisa binária funciona da seguinte maneira: a cada iteração, ela divide o tamanho da lista pela metade. O número máximo de comparações necessárias para encontrar um elemento em uma lista ordenada de tamanho n é dado por log2n, onde log2 é o logaritmo na base 2.
No caso de uma lista com 1000 elementos, calculamos:
log21000 ≈ 10
Portanto, serão necessárias, no máximo, 10 comparações para localizar o nome de um cidadão na lista utilizando a pesquisa binária.
Por que as outras alternativas estão incorretas:
- A - 1.000 comparações: Isso se referiria a uma pesquisa linear, onde cada elemento é verificado um a um. A pesquisa binária é muito mais eficiente.
- C - 500 comparações: Ainda é um número muito alto para o algoritmo de pesquisa binária, que divide a lista ao meio a cada iteração.
- D - 200 comparações: Também é elevado em comparação ao que a pesquisa binária necessita. Como vimos, log21000 é aproximadamente 10.
- E - 5 comparações: Embora melhor que as anteriores, ainda é um número baixo para uma lista de 1000 elementos. Talvez se aplicasse a uma lista com menos elementos.
Espero que essa explicação tenha sido clara e tenha ajudado a entender a lógica por trás da pesquisa binária e a razão pela qual a alternativa correta é B - 10 comparações. Se tiver mais dúvidas, estou à disposição para ajudar!
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
b) 10 Comparações. Log 1000 na base 2.
2^9 = 512
2^10 = 1024
sabemos que o número está na casa do ^9.
A fórmula é log n + 1, ou seja, log1000 + 1 --> 9 + 1 = 10
@papirobizurado
Pesquisa Binária é log do no.elementos na base 2, aqui é
=log 10**3 na base 2
...transformando log na base 2 em log na base 10, dividimos o log do no.desejado, só que na base 10 por log de 2 na base 10, temos:
=log 10**3 na base 10/log 2 na base 10
=3/3/10
=3*10/3
=30/3
=10
Vocé também pode fazer divisões sucessivas até chegar em 0:
1 comparação - 1000/2 =500
2 comparação - 500/2 = 250
.
.
.
10 comparação 1, 96... / 2= 0, 97...
Potencia de base 2, como temos 1000 comparações serão no mínimo 10, pois 2^10 = 1024.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo