65,210
社区成员
发帖
与我相关
我的任务
分享
template<typename Pointer, typename T>
bool _binary_search(Pointer first, Pointer last, const T& value)
{
last -= 1;
//std::cout << *last;
while(first < last)
{
Pointer middle = first + (last - first) / 2;
if (value < *middle)
{
last = middle - 1;
}
else if(*middle < value)
{
first = middle + 1;
}
else
{
return true; //value == *middle
}
}
return false;
}
int a[10]={0,1,2,3,4,5,6,7,8,9};
bool find(int first,int end,int v)
{
while (first<=end)
{
int temp=first+(end-first)/2;
if (a[temp]==v)
{
return true;
}
else if (a[temp]<v)
{
end=temp-1;
}
else
first=temp+1;
}
return false;
}