Busca binária em array ordenado (ascendente ou descendente)
Gabarito: letra D. A busca binária visita o elemento central e, conforme a comparação com o alvo, restringe a busca à metade esquerda ou direita. O problema fornece a sequência de visitas [54, 17, 33, 50] para o alvo 50, permitindo identificar o array que gera essa ordem.
A simulação em cada alternativa mostra que apenas a alternativa D ([5, 17, 33, 50, 54, 60, 87, 93, 111, 121]) produz a sequência correta:
Primeira visita: índice 4 (ponto médio) → valor 54. Como o array está em ordem crescente e 54 > 50, a busca segue para a metade esquerda.
Segunda visita: índice 1 → valor 17. 17 < 50, vai para a metade direita (índices 2 a 3).
Terceira visita: índice 2 → valor 33. 33 < 50, vai para a metade direita (índice 3).
Quarta visita: índice 3 → valor 50. Encontrado.
Alternativa A — ❌ Incorreta
Array: [95, 90, 87, 54, 52, 50, 33, 17, 11, 10] (ordem decrescente). Primeira visita no índice 4 (valor 52) ou no índice 5 (valor 50)? Depende do cálculo do ponto médio. Considerando o algoritmo padrão com baixo=0, alto=9, o ponto médio é 4 → valor 52, não 54. Logo, não corresponde à sequência.
Alternativa B — ❌ Incorreta
Array: [5, 10, 11, 17, 33, 50, 54, 87, 90, 95] (ordem crescente). Primeira visita no índice 4 → valor 33, não 54.
Alternativa C — ❌ Incorreta
Array: [121, 111, 93, 87, 60, 54, 50, 33, 17, 5] (ordem decrescente). Primeira visita no índice 4 → valor 60, não 54.
Alternativa D — ✅ Correta ⟵ GABARITO
Conforme demonstrado, a sequência de visitas coincide exatamente.
Alternativa E — ❌ Incorreta
Array: [130, 121, 111, 90, 70, 60, 54, 50, 33, 17] (ordem decrescente). Primeira visita no índice 4 → valor 70, não 54.
Gabarito: letra D