二分查找

二分查找

public class test06 {
	public static void main(String[] args) {

	}

	int binarySearch(int low, int high) {
		int ans = -1;
		while (low <= high) {
			int mid = low + (high - low) / 2;
			if (check(mid)) {
				ans = mid;
				high = mid - 1;
			} else
				low = mid + 1;
		}
		return ans;
	}

	static boolean check(int mid) {
		// 返回true代表在左边区间,返回false代表在右边区间
		return false;
	}
}

俗话说十个二分九个错,我基本上都是事先写好背下来了.
临时写的二分基本上都是有bug的,除非你在二分到区间是个位数的时候不使用二分直接顺序比较,这样可以有效避免写bug.

posted @ 2020-03-10 22:28  continued258  阅读(92)  评论(0)    收藏  举报