Pergunta no livro da Kathy que não entendi

7 respostas
Raff

Tem um pergunta no livro da Kathy que eu não entendi, eu vou colocar a pergunta aqui, se alguem souber explicar dando exemplo eu fiicarei grato obrigado pessoal !

A pergunta é :
Dado um array String devidamente preparado, contendo cinco elementos, qual a faixa de resultados que poderia ser produzida por um chamada correta de Array.binarySearch() ?
a. 0a4
b. 0a5
c. -1a4
d. -1a5
e. -5a4
f. -5a5
g. -6a4
h. -6a5

OBS: a resposta correta é a G mas eu não sei porque se alguem puder me exlicar agradeceria !!!1

[color=red]Título trocado.Era: Pessoal me ajudem com isso … [/color]

7 Respostas

recoma

Do JavaDoc:

O método Arrays.binarySearch

Returns:
index of the search key, if it is contained in the list; otherwise, (-(insertion point) - 1). The insertion point is defined as the point at which the key would be inserted into the list: the index of the first element greater than the key, or list.size(), if all elements in the list are less than the specified key. Note that this guarantees that the return value will be >= 0 if and only if the key is found.

Raff

Valew cara agora entendi muito bem… mas tipo tem como eu saber qual numero irá voltar tipo vamos supor que o meu Elemento que eu estou procurando não esteja no array. Tem como saber qual numero ira retornar para mim.

int[] vetor = {1, 2, 3, 4, 5, 6};//com esse vetor o intervalo em 
um Arrays.binarySearch() vai de -7 a 5;

Mas eu gostaria de saber por exemplo se eu tentar chamar o método da Classe Arrays.binarySearch(); procurando pelo n° 8 tem como eu saber qual numero nesse intervalo [-7/5]eu irei receber ou não.

OBS : Note que antes de chamar o metodos Arrays.binarySearch() o vetor tem que estar Ordenado…

ViniGodoy

Só tem como saber se você conhecer o conteúdo do seu array, ou seja, quase nunca.

Mas a posição retornada será o ponto de inserção, só que negativo.

Raff

ViniGodoy quer dizer que se eu receber um numero vamos supor é : -4 isso significa que é onde o n° deveria estar caso ele estivesse no array ?

ViniGodoy

Isso mesmo. Ele deveria estar na posição 4.

Raff

Valew cara muito obrigado entendi agora !!!

R

Na verdade, nesse caso, acho que ele deveria estar na posição 3, já que o retorno da função é -(insertion point) - 1. Então, para que o retorno seja -4, o ponto de inserção deve ser 3. Ou seja, seria o quarto elemento, mas a posição/índice dele no array seria 3.

Criado 14 de agosto de 2007
Ultima resposta 15 de ago. de 2007
Respostas 7
Participantes 4