Java 泛型二分查找法

package c21_Generic;
/**
 * 21.2 泛型二分查找法
 * @author Jeff Chen <[email protected]>
 * @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;
    }
}


你可能感兴趣的:(java,泛型二分查找法)