【发布时间】:2014-01-14 13:13:42
【问题描述】:
在排序数组中,我需要找到第一个整数的位置 >= 给定整数(如果数组中不存在这样的整数,则应返回-1)。以下对二分查找的修改是否正确解决了问题?我已经使用了很多测试用例来验证功能,但仍然想确认。
n = 没有。数组中的元素数
ele= 要搜索的整数
int binarySearch(int a[],int n,int ele)
{
int lower=0;
int upper=n-1;
int mid;
int pos=-1;
while(lower<=upper)
{
mid=(lower+upper)/2;
if (a[mid]==ele)
{
while(mid>=0 && a[mid]==ele)
mid--;
return mid+1;
}
else if(a[mid]<ele)
lower=mid+1;
else
{
pos=mid;
upper=mid-1;
}
}
return pos;
}
【问题讨论】:
标签: c binary-search