没有bug的二分查找

今天看了几篇关于二分查找的文章
知道了很多坑,在此记录一下,具体分析下次再来补充上
以下是正确的代码

1
2
3
4
5
6
7
8
9
10
11
12
13
public static int binarySearch(int arr[], int value) {
int l = 0, r = arr.length;
while (l <= r) {
int mid = l + (r - l) / 2;
if (arr[mid] == value)
return mid;
else if (value > arr[mid])
l = mid + 1;
else
r = mid - 1;
}
return -1;
}