// 二分查找,v升序
int find(vector<int>& v, int x){
int l = 0, r = v.size()-1;
while(l<=r){
int mid = (l+r)/2; // 防止l+r溢出,可以使用mid=l+(r-l)/2;
if(v[mid] > x){
r = mid-1;
}
else if(v[mid] < x){
l = mid+1;
}
else{
return mid;
}
}
// 未找到
return -1;
}
二分查找(C++)
最新推荐文章于 2022-03-23 17:15:20 发布