您的位置:首页 > 理论基础 > 数据结构算法

数据结构:二分查找 java

2018-08-19 23:20 351 查看
二分查找的前提是有序存储,利用顺序存储和元素排序

/**
* 二分查找,查找成功,返回下标记
* @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);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Java