int l,n,mid;
l=1;
r=n;
flag=0;
while(l<=r)//l>r则区间[l,r]不存在
{
mid=(l+r)/2;
if(x==a[mid])//在a中寻找x
{
cout<<"Yes"<<endl;
}
else if(x<a[mid])//x比a[mid]小,则在区间[l,mid-1]中继续查找
{
r=mid-1;
}
else{//x比a[mid]大,则在区间[mid+1,r]中继续查找
l=mid+1;
}//每次循环长度变为原来的1/2
}
if(flag==0)
{
cout<<"No"<<endl;
}
二分法的简单实现
最新推荐文章于 2024-04-29 23:46:05 发布