二分查找
二分查找
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.

浙公网安备 33010602011771号