查找---二分查找

折半查找又称二分查找,它仅适用于有序的顺序表。
查找成功,返回数组的下标,否则,返回-1。

算法如下:

//二分查找,返回找到数字的下标 
int binary_search(vector<int> v,int key){//v为已经排好序的数组 
	if(v.size()==0){
		return -1;//未找到 
	}
	int low = 0;
	int high = v.size()-1;
	int mid = 0;
	while(low <= high){
		mid = (low+high)/2;
		if(v[mid]==key){
			return mid;
		}else if(v[mid] > key){
			high = mid-1;//从前半部分查找 
		}else{
			low = mid +1;//从后半部分查找 
		}
	}
	return -1;
} 
发布了102 篇原创文章 · 获赞 21 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/guanripeng/article/details/104599048