核心思想
left和right的初始值与范围
退出状态与边界检测
mid的处理
int binSearch(int[] input, int target) {
int left = 0;
int right = input.length;
while (left < right) {
int mid = left + (right - left) / 2;
if (input[mid] == target) {
// mid checked already
return mid;
} else if (input[mid] < target) {
// range:[mid + 1, right)
left = mid + 1;
} else {
// range:[left, mid)
right = mid;
}
}
return -1;
}