FC ConcursosFC Concursos

Questão FC373254

Considere o programa Java abaixo. public class Verificar { public static int dados(int[ ] vetor, int início, int fim, int chave) { If (início > fim) { } return -1; int meio = (inic

Linguagens de Programação

FCC · 2024

Considere o  programa Java abaixo.

 

public class Verificar {


public static int dados(int[ ] vetor, int início, int fim, int chave) {
       If (início > fim) {
       }    return -1;
      
      int meio = (inicio + fim) / 2;
      if (vetor [meio] == chave {
          return meio;
}
if (vetror[ínício] <= vetor (meio)) {
     if (chave >= vetor[ínicio] 44 chave < vetor[meio)) «
          return dados (vetor, início, meio - 1, chave);
      } else }
          return dados (vetor, meio + 1, fim, chave);
      }
    } else {
          if (chave > vetcr[meio)] && chave <= vetor [fim]) {
               return dados (vetor, meio + 1, fim, chave);
         { else {
             return dados (vetor, inicio + meio - 1, chave);
        }
   }

}
public static void main(String[ ] args) {
       int[ ] vetor = (7, 8, 9, 1,2, 3, 4, 5, 6};
       int resultado = dados(vetor, 0, 8, 5);
       System.cut.printin(resultado);

  }

}

 

Ao executar o programa, em condições ideais, será exibido na tela o valor

  1. 7
  2. 6
  3. 8
  4. 3
  5. 5
Mostrar resposta e comentário

Gabarito

A

Comentário do professor

O método implementa uma busca binária em vetor rotacionado. Começa com início=0 e fim=8; calcula o meio por \(meio = (início + fim)/2\).

No primeiro passo \(meio = 4\) e vetor[4] = 2. Como vetor[0] = 7 não é ≤ vetor[4], a metade direita (índices 5–8: 3,4,5,6) está ordenada. A chave 5 pertence a esse intervalo, então a busca continua em início=5, fim=8.

No segundo passo \(meio = 6\) e vetor[6] = 4. Aqui a metade esquerda (índices 5–6: 3,4) está ordenada, mas 5 não está nesse intervalo, portanto a busca avança para início=7, fim=8.

Finalmente \(meio = 7\) e vetor[7] = 5, igual à chave; o método retorna o índice 7, que é o valor exibido.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo