①先初始化一个存着有序数的vector,目标是要找到14这个数
初始化beg,end,和mid。注意mid的初始化不可写成auto mid = (beg + end) / 2;
vector<int>ivec{ 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 };//有序的一组数
int goal = 14;//要找14这个数
auto beg = ivec.begin(), end = ivec.end();
auto mid = beg + (end - beg) / 2; //中间值
②进入循环
while (beg != end)//条件是首尾不相等
{
if (*mid < goal)
{
beg = mid;
mid = beg + (end - beg) / 2;
cout << "还没找到goal" << endl;
}
else if (*mid > goal)
{
end = mid;
mid = beg + (end - beg) / 2;
cout << "还没找到goal" << endl;
}
else
{
cout << "找到goal啦!" << endl;
break;
}
}
③运行结果