Questões de Informática · ProGPe UFSCAR

InformáticaLógica de programação e algoritmosProGPe UFSCAR 2015

UFSCAR

Questão de Informática

O método a seguir deveria procurar por um elemento (parâmetro chave) em um vetor ordenado crescentemente (parâmetro V) e retornar o índice da posição do elemento encontrado, ou -1, caso o elemento chave não esteja presente em V. Esse método possui dois erros. 01 public int procurar(int chave, int V[]) { 02 int inicio = 0; 03 int fim = V.length - 1; 04 while( inicio < fim ) { 05 int meio = inicio - (fim + inicio)/2; 06 if( chave < V[meio] ) 07 fim = meio - 1; 08 else if( chave > V[meio] ) 09 inicio = meio + 1; 10 else 11 return meio; 12 } 13 return -1; 14 } Considere as possíveis alterações: I. Linha 03: int fim = V.length II. Linha 04: while( inicio <= fim ) { III. Linha 05: int meio = inicio + (fim - inicio)/2 IV. Linha 11: return meio - 1 Qual das alternativas corrige o algoritmo anterior?

Sua resposta

Mais questões de Lógica de programação e algoritmos

Ver as 2.300 questões de Lógica de programação e algoritmos

Questão de prova oficial, com o gabarito definitivo publicado pela banca. Reproduzida para fins de estudo.