您的位置:首页 > 编程语言 > C语言/C++

C/C++:迭代器的简单二分查找

2015-04-07 21:03 218 查看
I just don't want to regret it !

#include <iostream>
#include <algorithm>
#include <string>
#include <vector>

using namespace std;

int main()
{
vector<int>c{1, 2, 3, 4, 5};//默认排好了序

auto beg = c.begin();auto end = c.end();//搜索范围
auto mid = c.begin() + (end - beg) / 2;//初始中间点
auto aim = 3;//目标值

while (mid != end && *mid != aim)
{
if (aim < *mid){
end = mid;
}//前半部分
else{
beg = mid + 1;
}//后半部分
mid = beg + (end - beg) / 2;//处理寻找之后的mid值
}

if (*mid == aim){
cout << "Yes" << endl;
}
else{
cout << "No" << endl;
}

system("pause");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: