proper invocation of Arrays.binarySearch() produce?

A. 0 through 4

B. 0 through 5

C. -1 through 4

D. -1 through 5

E. -5 through 4

F. -5 through 5

G. -6 through 4

H. -6 through 5

And the answer is given as G. As per my understanding the binarysearch index would return -1 if the match is not found since 0 is also considered as a successful match. So for 0 it is -1, 1 it is -2 and so on until 4 it is -5. So as per my understanding the answer would be E. Isn't it? Please clarify.

[ July 24, 2008: Message edited by: Ralph Jaus ]

SCJP 5 (98%) - SCBCD 5 (98%)

Regarding binarySearch

Unsuccessful searches return an int index that represents theinsertion point.

The insertion point is the place in the collection/array where the element

would be insertedto keep the collection/array properly sorted. Because posi-

We�ve talked a lot about sorting by natural order and using Comparators

to sort. The last rule you�ll need to burn in is that, whenever you want to sort an array

or a collection, the elements inside must all be mutually comparable. In other words, if you

have an Object[] and you put Cat and Dog objects into it, you won�t be able to sort

it. In general, objects of different types should be considered NOT mutually comparable,

unless specifically stated otherwise.

tive return values and 0 indicate successful searches, the binarySearch()

method uses negative numbers to indicate insertion points.Since 0 is a valid.

result for a successful search, the first available insertion point is -1. Therefore,

the actual insertion point is represented as (-(insertion point) -1). For

instance, if the insertion point of a search is at element 2, the actual insertion

point returned will be -3

[ July 24, 2008: Message edited by: Raphael Rabadan ]

"Since 0 is a valid result for a successful search, the first available insertion point is -1. Therefore,the actual insertion point is represented as (-(insertion point) -1). Forinstance, if the insertion point of a search is at element 2, the actual insertion point returned will be -3."

So the insertion point for the 5th element (4th in index) is going to be

-5 right, how did we get to the -6, is that means say i have an array of 10 elements (0 to 9), the values would be from -11 through 9, is that the answer for the question then.....

[ July 24, 2008: Message edited by: Ralph Jaus ]

SCJP 5 (98%) - SCBCD 5 (98%)

-(N+1) through (N-1)

Thanks again for the help

By the way, the satements

are wrong. -1 is returned, if the the element used in binarySearch is less than the smallest element in the array (that is, it has to be inserted at position 0 to keep the array sorted). Let a = {0,2,4,6,8}. Than Arrays.binarySearch(a,1) would return -2, because 1 has to be inserted at index position 1 to keep the array sorted. And so on.No insert Point --> -1

At 0 --> -2

At 1 --> -3

At 2 --> -4

At 3 --> -5

-----------------------------------------

SCJP 1.5 (98%)

SCJP 5 (98%) - SCBCD 5 (98%)

SCJP 5 (98%) - SCBCD 5 (98%)

One more personal question, i saw the fantabulous score of yours (98%) and would like to know the secret behind the success. If you could share your preparation steps and notes that would be great.