public class QueryDemo {
public static void main(String[] args) {
int[] arr2 = new int[] { 11, 3,32,34, 45, 56, 78 };
System.out.println("67在数组中的位置:" + halfSearch(arr2, 11));
}
public static int halfSearch(int[] arr, int value) {
// 定义3个变量 min, mid, max
int min = 0;
int max = arr.length - 1;
int mid = (min + max) / 2;
while (value != arr[mid]) {
// 判断
if (value > arr[mid]) {
// 在右侧
min = mid + 1;
} else {
// 在左边
max = mid - 1;
}
// 更新 mid
mid = (min + max) / 2;
// 当最小角标 大于 最大角标时, 证明 数据没有查询到
if (min > max) {
mid = -1;
break;
}
}
return mid;
}
}
原文:http://blog.csdn.net/pengweid/article/details/45457189