C++ 迭代器 二分查找

void func(int n, const vector<int>& t)
{
	auto begin = t.begin();
	auto end = t.end();
	auto mid = t.begin() + (end - begin) / 2;
	while (mid != end && *mid != n) {
		if (n < *mid)
			end = mid;
		else
			begin = mid + 1;
		mid = begin + (end - begin) / 2;
	}
	if (*mid == n){
		cout << "True" << endl;
	}
	else {
		cout << "False" << endl;
	}
}
void func(int n, const vector<int>& t)
{
	auto begin = t.begin();
	auto end = t.end();
	while (begin != end)
	{
		auto mid = begin + (end- begin)/ 2;
		if ((*mid) == n) {
			cout << "true" << endl;
			return;
		}
		else if (*mid > n) {
			end = mid;
		}
		else {
			begin = mid + 1;
		}
	}
}
posted @ 2020-04-01 23:13  Voca  阅读(43)  评论(0)    收藏  举报