Matemática Múltipla Escolha

Suponha uma classe SomeClass onde está definida uma variável a[size]. Considere o seguinte método binSearch() que pesquisa binária por uma chave numa array. A array a[0]...a[a.length-1] está ordenada por ordem ascendente. Na primeira passagem pelo elemento 27, o intervalo de pesquisa depois da primeira passagem pelo ciclo while, será

Suponha uma classe SomeClass onde está definida uma variável a[size]. Considere o seguinte método binSearch() que pesquisa binária por uma chave numa array. A array a[0]...a[a.length-1] está ordenada por ordem ascendente. Na primeira passagem pelo elemento 27, o intervalo de pesquisa depois da primeira passagem pelo ciclo while, será

  1. a. a[0]...a[7]
  2. b. a[5]...a[6]
  3. c. a[4]...a[7]
  4. d. a[2]...a[6]
  5. e. a[6]...a[10]

Resolução completa

Explicação passo a passo

C
Alternativa C

Alternativa C - a[4]...a[7]

Análise do Algoritmo

Para encontrar a resposta, precisamos simular a execução do código fornecido na imagem passo a passo, focando na primeira iteração do while.

1. Configuração Inicial

  • Lista: [4, 7, 9, 11, 20, 24, 30, 41]
  • Elementos: Existem 8 elementos visíveis. Embora a classe defina size=10, o uso dos índices nas opções de resposta (até a[7]) indica que o length relevante aqui é 8.
  • Chave (key): O número 27.
  • Variáveis:
  • low = 0
  • high = length - 1 = 8 - 1 = 7

2. Primeira Passagem do Ciclo while

A condição while (low <= high) é verificada ($0 \leq 7$, verdadeiro). Dentro do bloco:

  1. Cálculo do Meio (mid):
    mid = (low + high) / 2
    mid = (0 + 7) / 2 = 3 (Divisão inteira)
  2. Verificação do Elemento Central:
    O índice 3 corresponde ao quarto elemento da lista:
  • a[0]=4, a[1]=7, a[2]=9, \mathbf{a[3]=11}
  • Compara-se: $11$ vs $27$.
  1. Lógica de Decisão:
  • $11 \neq 27$
  • $11 < 27$ (Condição a[mid] < key é verdadeira).
  • Ação: O algoritmo descarta a metade esquerda e ajusta o limite inferior.
    low = mid + 1
    low = 3 + 1 = 4
  1. Estado Final da Iteração:
  • low passou a ser 4.
  • high permaneceu 7.

3. Conclusão

Após a primeira passagem, o novo intervalo de pesquisa começa no índice low e termina no índice high.

VariávelValor AntesValor Após 1ª Passagem
low04
high77

O intervalo restante é portanto a[4] até a[7].

Isso corresponde exatamente à Alternativa C.

Tem outra questão para resolver?

Resolver agora com IA

Mais questões de Matemática

Ver mais Matemática resolvidas

Tem outra questão de Matemática?

Cole o enunciado, tire uma foto ou descreva o problema — a IA resolve com explicação completa em segundos.