在包含size个函数且从小到大排序的int数组a里找元素p
找到则返回元素下标,找不到返回-1
代码
//在包含size个函数且从小到大排序的int数组a里找元素p
//找到则返回元素下标,找不到返回-1
int BinarySearch(int a[],int size,int p){
int L = 0;//查找区间的左端点
int R = size-1;//查找区间的右端点
while(L<=R){
int mid = L+(R-L)/2;//这儿之所以不写(L+R)/2 是因为 L+R 有可能溢出
if(p==a[mid]) return mid;
else if(p > a[mid])
L = mid + 1;
else
R = mid - 1;
}
return -1;
}
时间复杂度O(log(n))