SWUST数据结构--折半查找的实现

#include<iostream>
using namespace std;

int count = 0;	
int BinSearch(int R[],int n,int k)
{
	int low=0,high=n-1,mid;
	while(low<=high)
	{
		count++;
		mid = (low+high)/2;	
		if(k > R[mid]) 
			low = mid+1;
		else if(k < R[mid]) 
			high = mid-1;	
		else if(k == R[mid])
			return mid;
	}
	return -1;
}

int main()
{
	int i,n,m;
	int a[100];
	cin>>n;
	for(i=0;i<n;i++)
		cin>>a[i];
	cin>>m;        
    int x = BinSearch(a,n,m);
	cout<<x<<endl<<count;
	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_41681743/article/details/79988652