在一个非递减的数组中查找一个数,若不存在则返回-1,若存在则返回等于该数的数组元素的最小下标。
代码如下:
int BiSearch(int array[], int size, int key)
{
int mid,begin = 0,end = size - 1;
while(begin <= end)
{
mid = (begin + end)/2;
if(array[mid] < key)
begin = mid + 1;
else
end = mid - 1;
}
if(array[mid] == key)
return mid;
if(array[mid + 1] == key )
return mid + 1;
return -1;
}