C++ 找数字(二分查找)函数框架
2026-04-24 20:50:30
发布于:四川
求赞和评论
函数内容
bool f(int n,int x){
int l,r;
l=1;
r=n;
int mid;
sort(a+1,a+1+n);
while(l<=r){
mid=(l+r)/2;
if(a[mid]>x) r=mid-1;
else if(a[mid]<x) l=mid+1;
else {
return 1;
}
}
return 0;
}
使用说明
n是长度
x是数字
返回布尔值1或0
注意这个是在数组中找数字
找第一个
int findFirst(int L,int R,int x){
if(L==R) return R;
int mid =(L+R)>>1;
if(a[mid]>=x) R=mid;
else L=mid+1;
return findFirst(L,R,x);
}
找最后一个
int findLast(int L,int R,int x){
if(L==R) return L;
int mid =(L+R+1)>>1;
if(a[mid]<=x) L=mid;
else R=mid-1;
return findLast(L,R,x);
}
使用说明
返回下标
l是起点
r是终点
x是数字
注意:这个是在数组中找数字,数组需要排序
全部评论 2
2026-04-24 来自 山东
1
2026-02-10 来自 浙江
0






















有帮助,赞一个