二分查找的前提是有序存储,利用顺序存储和元素排序
/** * 二分查找,查找成功,返回下标记 * @param values * @param begin * @param end * @param key * @param* @return */public static > int binarySearch(T values[], int begin, int end, T key) { while(begin <= end) { int mid = (begin + end) / 2; if(key.compareTo(values[mid]) == 0) { return mid; } else if(key.compareTo(values[mid]) < 0) { end = mid -1; } else { begin = mid +1; } } return -1;}/** * * @param values * @param key * @param * @return */public static > int binarySearch(T values[], T key) { return binarySearch(values,0,values.length -1, key);}