二分查找法

介绍

二分查找法是一种十分基础的算法,他可以使得搜索的复杂度变为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;
}
原文地址:https://www.cnblogs.com/woxiaosade/p/12241115.html