1.a[ ]为严格递增序列,left为二分下界,right为二分上界,x为想要查找的数
int solve(int a[],int left,int right,int x)
{
int mid;
while(right>=left)
{
mid=(left+right)/2;
if(a[mid]==x)
return mid
else if(a[mid]>x)
right=mid-1;
else
left=mid+1;
}
return -1;
}
2.a[ ]为严格递增序列,left为二分下界,right为二分上界,x为想要查找的数,函数返回第一个大于等于x 的元素的位置
int solve(int a[],int left,int right,int x)
{
int mid;
while(right>left)
{
mid=(left+right)/2;
if(a[mid]>=x)
right=mid;
else
left=mid+1;
}
return left;
}
3.a[ ]为严格递增序列,left为二分下界,right为二分上界,x为想要查找的数,函数返回第一个大于x 的元素的位置
int solve(int a[],int left,int right,int x)
{
int mid;
while(right>left)
{
mid=(left+right)/2;
if(a[mid]>x)
right=mid;
else
left=mid+1;
}
return left;
}