为什么80%的码农都做不了架构师?>>>
二分查找的前提是有序存储,利用顺序存储和元素排序
/*** 二分查找,查找成功,返回下标记* @param values* @param begin* @param end* @param key* @param <T>* @return*/ public static <T extends Comparable<? super T>> 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 <T>* @return*/ public static <T extends Comparable<? super T>> int binarySearch(T values[], T key) {return binarySearch(values,0,values.length -1, key); }