# BinarySearch()

ahmed yehia

Ranch Hand

Posts: 424

posted 9 years ago

Question no. 9 chapter 7 k&B

Given a properly prepared String array containing five elements, which range of results could a proper invocation of Arrays.binarySearch()produce?

answer: -6 through 4

per my understanding answer should be (-5 through 4) since inserion points evaluates as (-(insertion point) -1), so for eg last insertion point of index 4 should be (-4 -1) which is -5 Not -6

Given a properly prepared String array containing five elements, which range of results could a proper invocation of Arrays.binarySearch()produce?

answer: -6 through 4

per my understanding answer should be (-5 through 4) since inserion points evaluates as (-(insertion point) -1), so for eg last insertion point of index 4 should be (-4 -1) which is -5 Not -6

Sanjeev Singh

Ranch Hand

Posts: 381

ahmed yehia

Ranch Hand

Posts: 424

Burkhard Hassel

Ranch Hand

Posts: 1274

posted 9 years ago

Howdy ranchers,

Ahmed wrote

No, the last insertion point is

(0, 1, 2, 3, 4)

and you do a binary search for number 5, which isn't in. Then the insertion point would be index 5 (after the four)

And as the returned value of a not-find is always

-(insertion point - 1)

the binary search should return -6.

Yours,

Bu.

[ July 19, 2007: Message edited by: Burkhard Hassel ]

Ahmed wrote

per my understanding answer should be (-5 through 4) since inserion points evaluates as (-(insertion point) -1), so for eg last insertion point of index 4 should be (-4 -1) which is -5

No, the last insertion point is

*behind*the last entry, so if you have a sorted collection say:(0, 1, 2, 3, 4)

and you do a binary search for number 5, which isn't in. Then the insertion point would be index 5 (after the four)

And as the returned value of a not-find is always

-(insertion point - 1)

the binary search should return -6.

Yours,

Bu.

[ July 19, 2007: Message edited by: Burkhard Hassel ]

all events occur in real time

saravana.T kumar

Greenhorn

Posts: 23

posted 9 years ago

HI,

binarySearch(List<? extends Comparable<? super T>>

checkedMap(Map<K,V> m, Class<K> keyType,)

checkedSortedSet(SortedSet<E> s, Class<E> type)

these methods were taken from the collections class

MY doubt is the arguments

1.List<? extends Comparable<? super T>

2.checkedMap(Map<K,V> m, Class<K> keyType,)

3.(SortedSet<E> s, Class<E> type)

In this forum i read that <E> is for numeric types is it true?

and please explain what these arugments types expect.

binarySearch(List<? extends Comparable<? super T>>

checkedMap(Map<K,V> m, Class<K> keyType,)

checkedSortedSet(SortedSet<E> s, Class<E> type)

these methods were taken from the collections class

MY doubt is the arguments

1.List<? extends Comparable<? super T>

2.checkedMap(Map<K,V> m, Class<K> keyType,)

3.(SortedSet<E> s, Class<E> type)

In this forum i read that <E> is for numeric types is it true?

and please explain what these arugments types expect.

Burkhard Hassel

Ranch Hand

Posts: 1274

posted 9 years ago

Howdy ranchers!

Saravana asked:

No. You must have misunderstood something. It is a generic type. On the Sun site is a tutorial part also about Generics. You'll need to spend some time with this for the exam.

Yours,

Bu.

Saravana asked:

In this forum i read that <E> is for numeric types is it true?

No. You must have misunderstood something. It is a generic type. On the Sun site is a tutorial part also about Generics. You'll need to spend some time with this for the exam.

Yours,

Bu.

all events occur in real time