在包含size个元素的、从小到大的int数组a里查找比给定整数p小的,下标最大的元素。找到则返回其下标,找不到则返回-1
int LowerBound(int a[],int size,int p)//时间复杂度O(log(n))
{
int L=0;
int R=size-1;
int lastPos=-1;//到目前为止找到的最优解
while(L<=R)
{
int mid=L+(R-L)/2;
if(a[mid]>=p)
R=mid-1;
else
{
lastPos=mid;
L=mid+1;
}
return lastPos;
}
二分查找函数LowerBound
最新推荐文章于 2024-02-24 22:43:27 发布