您的位置:首页 > 其它

二分法查找

2016-06-21 11:24 253 查看
/**
* 二分法查找
* @author:InkYi
* @time:2016年6月21日 - 上午11:00:07
* @param arr 正序排列的有序数组
* @param value 需要查找的值
* @return 数组下标
*/
public static int binarySearch(int[] arr, int value) {
int low = 0;// 查找的最低位
int high = arr.length - 1;// 查找的最高位
int mid = 0;// 中间位
while (low <= high) {
mid = (low + high) / 2;
if (arr[mid] == value) {
return mid;
} else if (value < arr[mid]) {
high = mid - 1;
} else if (value > arr[mid]) {
low = mid + 1;
}
}
return -1;
}


重点就是根据当前比对的值,来确定下次查找的方向。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: