public int BSearch(int[] arr, int x) {
int l = 0;
int r = arr.length - 1;
int mid = 0;
while (l <= r) {
mid = (l + r) / 2;
if (arr[mid] == x) return mid;
if (arr[mid] > x && x >= arr[l]) {//判断mid和x的索引位置关系
r = mid - 1;
} else {
l = mid + 1;
}
}
return -1;
}
二分查找主要是判断二分之后的索引位置和要查找的元素的索引位置关系。