// 二分法.cpp : 定义控制台应用程序的入口点。
#include <iostream>
#include <vector>
using namespace std;
int a[9]={1,2,3,4,6,8,9};
vector<int> text(a,a+7);
int sought;
vector<int>::iterator beg,mid,end;
bool in(int a);
int main()
{
sought =7;
bool is=in(sought);
if (is==true)
printf("%i在有序队列中", sought);
else
printf("%i不在有序队列中", sought);
return 0;
getchar();
}
bool in(int a)
{
beg = text.begin(), end = text.end();
mid = text.begin() + (end - beg) / 2;
while (mid != end&&*mid != sought)
{
if (a < *mid)//向前
{
end = mid;
printf("a<%d\n", *mid);
}
else //向后
{
printf("a>%d\n", *mid);
beg = mid + 1;
}
mid = beg + (end - beg) / 2;
}
if (mid==end)
return false;
else
return true;
}