class Solution {
public int binarySearch(int[] arr, int value) {
int begin = 0;
int end = arr.length - 1;
while (begin <= end) {
int mid = begin + (end - begin) / 2;
if (arr[mid] > value) {
end = mid - 1;
} else if (arr[mid] < value) {
begin = mid + 1;
} else {
return mid;
}
}
return -1;
}
}
n代表一共有n个数据,a代表要找的数据的次数。
n a
2 2
4 3
8 4
综上所述二分查找的时间复杂度为:O( log n );