在二分法中,常常因为没有控制好端点造成死循环或者丢解的问题
下面是两个完备的二分法模板
while(l<r){
int mid=(l+r)>>1;
if(a[mid]>=x){
r=mid;
}
else l=mid+1;
}
while(l<r){
int mid(l+r)>>1;
if(a[mid]<=x) l=mid+1;
else r=mid;
}
在二分法中,常常因为没有控制好端点造成死循环或者丢解的问题
下面是两个完备的二分法模板
while(l<r){
int mid=(l+r)>>1;
if(a[mid]>=x){
r=mid;
}
else l=mid+1;
}
while(l<r){
int mid(l+r)>>1;
if(a[mid]<=x) l=mid+1;
else r=mid;
}