Pular para o conteúdo principal

Questão de Algoritmos e Estrutura de Dados — Algoritmos — CESGRANRIO 2018

Algoritmos e Estrutura de DadosAlgoritmos
Código
cg013891
Banca
CESGRANRIO
Órgão
Transpetro
Ano
2018
Nível
Superior
Cargo
Analista de Sistemas Júnior - Infraestrutura
Um método que implementa um algoritmo de busca binária recebe como parâmetros um vetor de inteiros ordenados descendentemente, o comprimento desse vetor e um número inteiro que se deseja localizar no vetor. O cabeçalho desse método é o seguinte:public int buscaBin(int vet[], int n, int val)Admitindo-se que o vetor passado como parâmetro tenha 750 elementos, qual será o número máximo de iterações que o algoritmo irá realizar até que o valor (val) seja localizado ou que seja detectado que esse valor não se encontra no vetor?
  1. A8
  2. B9
  3. C10
  4. D11
  5. E12
Revelar gabarito e comentário

GabaritoC — 10

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”.

Busca Binária – Número Máximo de Iterações

Gabarito: letra C (10). A busca binária, a cada iteração, reduz pela metade o espaço de busca. Para um vetor de 750 elementos, o número máximo de iterações é o menor inteiro kk tal que 2k>7502^k > 750. Como 29=5122^9 = 512 (ainda menor que 750) e 210=10242^{10} = 1024 (já maior), são necessárias no máximo 10 iterações para encontrar o valor ou concluir que ele não existe. Esse valor é dado por log2(750)=10\lceil \log_2(750) \rceil = 10. A ordenação descendente não altera o número de iterações, apenas a direção da comparação.

  1. 1Vetor de 750 elementos
  2. 2Cada iteração divide ao meio
  3. 32⁹ = 512 (insuficiente)
  4. 42¹⁰ = 1024 > 750
  5. 5Máximo: 10 iterações
LEVEL · soulevel.com.br

Alternativa A – ❌ Incorreta (8)

Com 8 iterações, o algoritmo conseguiria cobrir no máximo 28=2562^8 = 256 elementos, insuficiente para um vetor de 750.

Alternativa B – ❌ Incorreta (9)

29=5122^9 = 512, ainda insuficiente para cobrir 750 elementos.

Alternativa C – ✅ Correta ⟵ GABARITO

210=1024>7502^{10} = 1024 > 750, garantindo que todas as posições possam ser verificadas no pior caso.

Alternativa D – ❌ Incorreta (11)

Embora algumas implementações possam realizar um número extra de comparações (dependendo da condição de parada), o máximo teórico para busca binária pura em 750 elementos é 10, não 11.

Alternativa E – ❌ Incorreta (12)

Valor superdimensionado; não há necessidade de 12 iterações para 750 elementos.

PEGA ESSA DICA!

Para calcular o número máximo de iterações da busca binária, use a fórmula log2(n+1)\lceil \log_2(n+1) \rceil ou o menor kk tal que 2k>n2^k > n. Para n=750n=750, 29=5122^9=512 (faltam), 210=10242^{10}=1024 (suficiente). Memorize que cada iteração dobra a cobertura.

Gabarito: letra C.

Link permanente: /questoes/cg013891