代码
在有序数组arr中(若是无序的需先进行排序),查找target
如果找到了target即返回相应的下标值
如果没找到即返回 -1
template<typename T>
int binarySearch(T arr[], int n, T target){
int l = 0, r = n - 1;
while(l <= r){
int mid = l + (r-l)/2
if(arr[mid] == target){
return mid;
}
if(target < arr[mid]){
//在arr[l ... mid-1]之中查找target
r = mid - 1;
}else{
//在arr[r ... mid+1]之中查找target
l = mid + 1;
}
}
return -1;
}