约 10 分钟
把前几天拼起来就是完整二分。int l=0,r=n-1; while(l<=r){int m=(l+r)/2; if(a[m]==x){cout<<m; break;} else if(a[m]<x) l=m+1; else r=m-1;} 循环条件是 l<=r。
int l=0,r=n-1; while(l<=r){int m=(l+r)/2; if(a[m]==x){cout<<m; break;} else if(a[m]<x) l=m+1; else r=m-1;}
l<=r
除了找到,循环还会在什么时候结束?
登录 后可看答案