二分查找法
介绍
二分查找法是一种十分基础的算法,他可以使得搜索的复杂度变为O(logn),每次写二分查找,都免不了调试边界条件,故写下此文,以后写二分查找好有统一写法。
代码
int binary_search(int *a, int val, int l, int r){
int ans = -1;
while(l <= r){
int mid = (l + (r - l)) >> 1;
if(a[mid] < val)
l = mid + 1;
else if(a[mid] > val)
r = mid - 1;
else{
ans = mid;
break;
}
}
return ans;
}