二分查找算法

2 阅读1分钟

核心思想

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;
}