随便测试了一下不知道是否完全正确
1/** 2 * Created by Void Young on 7:57 PM 6/25/2016 . 3 * IDEA-Test . 4 * 泛型二分查找 5 *此处返回的负数为在list里1开始计算的次序位置,不是数组下标 6 */ 7public class GenericBinarySearch { 8 9 public static <E extends Comparable<E>> int binarySearch (E[] list,E key){ 10 int low = 0,high = list.length-1,middle = 0,flag = 0; 11 while (low<=high) { 12 middle = (low+high)/2; 13 flag = key.compareTo (list[middle]); 14 if (flag > 0) { 15 low = middle+1; 16 } else if (flag < 0) { 17 high = middle - 1; 18 } else { 19 return middle;//找到了就返回下标 20 } 21 } 22 23 return - ( low + 1 ); 24 } 25 26 public static void main (String[] args) { 27 Integer[] list = {- 2, 0, 1, 5, 7, 8, 9, 15, 25, 35, 65, 88, 90}; 28 Double[] dlist = {- 18.5, - 5.1, 0.0, 1.1, 25.3, 35.8, 44.5}; 29 System.out.println ( binarySearch (dlist, 25.1)); 30 } 31}