在一个非递减的数组中查找一个数,若不存在则返回-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; }