A+ Work




Implement and test a generic binary search. Note that your test program must use at least 2 types of data to prove that bsearch is generic.



Templating means that instead of passing a parameter such as Integer you pass a parameter T. (T is a type variable and can be named anything). This means that you can call bsearch with different types of objects.



Pseudo Code Example:



Bsearch(String) Bsearch(Integer)



This means you do not have to write 2 separate bsearch methods, one for String and one for Integer.



The heart of how this is accomplished is the Comparable interface. If a class implements Comparable, it defines less than, greater than and equals. Also, by making the type variable you can call with any object that implements Comparable.



Example Code:



public class Searches

{

public static int bsearch(T[] a, int first, int last, T key)

{



called in main as:



result = Searches.bsearch(IntegerArray,0, 10, key);

result = Searchesbsearch(StringArray,0,10,key);





Example Output:



--------------------Configuration: --------------------

Integer test array contains:

0 2 4 6 8 10 12 14 16 18

-3 is not in the array.

-2 is not in the array.

-1 is not in the array.

0 is at index 0

1 is not in the array.

2 is at index 1

3 is not in the array.

4 is at index 2

String test array contains:

apples oranges peaches strawberries watermelons

apples is at index 0

plums is not in the array.



Process completed.