二分查找#
目录#
1. 模板#
int binary_search(int array[],int low,int high,int target)
{
while(low<=high)
{
int mid=low+(high-low)/2;//防止溢出问题
if(array[mid]>target)
high=mid-1;
else if(array[mid]<target)
low=mid+1;
else
return mid;
}
return-1;
}
2. STL#
lower_bound(起始地址,结束地址,要查找的数值)
返回的是 第一个大于或等于 要查找的数值的数出现的位置。
upper_bound(起始地址,结束地址,要查找的数值)
返回的是数值 第一个大于/最后一个等于 要查找的数值的数出现的位置。
binary_search(起始地址,结束地址,要查找的数值)
返回的是 是否存在 这么一个数,是一个 bool值。