欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

查找---二分查找

程序员文章站 2022-03-14 09:57:45
...

折半查找又称二分查找,它仅适用于有序的顺序表。
查找成功,返回数组的下标,否则,返回-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;
}