**** In Java with detailed comments **** Assignment 8 Implement and test a templ
ID: 3733251 • Letter: #
Question
**** In Java with detailed comments ****
Assignment 8 Implement and test a templated binary search. Note that your test program must use at least 2 types of data to prove that bsearch is templated 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, resultSearchesbsearch (StringArray,0,10, key) key); Example Output: Configuration:Explanation / Answer
public class Search {
public static <T extends Comparable<T>> int bsearch(T[] array, int lo, int hi,T value) {
if (lo < hi) {
int mid = (lo+ hi)/2;
int cmp = value.compareTo(array[mid]);
if (cmp < 0) return bsearch(array, lo, mid - 1, value);
if (cmp > 0) return bsearch(array, mid + 1, hi, value);
return mid;
} // if
return -1;
} // binarySearch
public static void main(String[] args) {
Integer[] arr= {1,2,3,4,5,6,7,8,9};
System.out.println(bsearch(arr, 0, arr.length-1, 2));
System.out.println(bsearch(arr, 0, arr.length-1, 12));
System.out.println(bsearch(arr, 0, arr.length-1, -2));
String[] arr1 = {"apple", "ballon","kamala", "mango","zinc" };
System.out.println(bsearch(arr1, 0, arr1.length-1, "cat"));
System.out.println(bsearch(arr1, 0, arr1.length-1, "mango"));
}
}
/*
Sample run:
1
-1
-1
-1
3
*/
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.