二分法查询数据java实现

public class Find_Erfenfa {
public static void main(String[] args) {
int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int x = 5;
System.out.println(get(arr, x));
}
private static int get(int[] arr, int x) {
int begin = 0;  //查询起始
int end = arr.length - 1; // 查询结束
int middle = 0;
//终止条件 起始大于结束
while (begin <= end) {
middle = (begin + end) / 2; //获取中点
if (arr[middle] == x) {
return middle;
} else if (arr[middle] < x) { // 在右边
begin = middle + 1;    // 起始设为中点加1
} else {  //在左边
end = middle - 1;   //结束设为中点减1
}
}
return -1;
}
}
原文地址:https://www.cnblogs.com/chc-blog/p/8117778.html