| BinarySearch.java |
package binarysearch;
/**
* Binary Search Algorithm
* @author Winston Prakash
*/
public class BinarySearch {
public static <T extends Comparable<? super T>> int search(T[] array, T item){
int low = 0;
int high = array.length - 1;
int mid;
while (low <= high){
//mid = low + (low - high) / 2;
mid = (low + high) >>> 1;
if (array[mid].compareTo(item) < 0){
low = mid + 1;
}else if (array[mid].compareTo(item) > 0){
high = mid - 1;
}else{
return mid;
}
}
return -1;
}
}