import java.util.Arrays;
public class GetValue {
public static void main(String[] args) {
int[] array = {1,3,5,7,9,2,4,6,8,10};
int value= 2;
query(array,value);
}
// 二分查找法
public static void query(int[]array,int value) {
// 数组排序
Arrays.sort(array);
// 从左寻找的初始化下标位置为0
int left=0;
//从右寻找的初始化下标为数组最后的下标位置。
int right = array.length-1;
//判断左边的下标必须小于等于右边的下标
while(left<=right) {
// 左边下标 +右边的下标 /2 得到一个中间点
int middle = (left+right)/2;
//判断中间点的下标对应的值是否匹配。如果匹配就结束
if(value==array[middle]) {
return;
}
//如果不匹配。判断需要寻找的值,是否大于当前下标,如果大于当前下标,左边的下标就要递增1位。依此循环
if(value>array[middle]) {
// 设置左边的+1
left = middle+1;
}
//如果不匹配。判断需要寻找的值,是否小于当前下标,如果小于当前下标,右边的下标就要递减1位。依此循环
if(value<array[middle]) {
// 设置右边的减1
right = middle-1;
}
}
}
}