mooyyu

B3 - 二分查找

c++11 basic 整数二分查找

性质判定

bool check(const int mid);

左查找模型

int lfind(const int l, const int r) {
	static type mid;
	if (l == r - 1) return l;
	mid = (l + r - 1)>>1u;
	if (check(mid)) return lfind(l, mid + 1);
	else return lfind(mid + 1, r);
}

右查找模型

int rfind(const int l, const int r) {
	static type mid;
	if (l == r - 1) return l;
	mid = (l + r + 1)>>1u;
	if (check(mid)) return rfind(mid, r);
	else return rfind(l, mid);
}