package c21_Generic;
/**
* 21.2 泛型二分查找法
* @author Jeff Chen <chenxueping1819@gmail.com>
* @since 2014-4-4
* */
public class GenericBinarySearch {
public static void main(String[] args) {
Integer[] iArr1 = {1,2,3,4,5,6,7,8,9,10};
System.out.println(GenericBinarySearch.<Integer>binarySearch(iArr1, 3));
}
public static <E extends Comparable<E>> int binarySearch(E[] list, E key){
int low = 0;
int high = list.length - 1;
int mid;
while(low <= high ){
mid = low + ((high - low)>>1);
if(list[mid].compareTo(key) == 0 ){
return mid;
}
if(list[mid].compareTo(key) > 0 ){
high = mid -1;
}
if(list[mid].compareTo(key) < 0 ){
low = mid + 1;
}
}
return -1;
}
}
转载于:https://my.oschina.net/jeffoscn/blog/217792