用二分法查找数组中的元素

   用二分法查找数组中的某个元素,首先数组中的元素必须是有序的,然后查找想要的元素,返回其下标值。
#include 

int BinSerach(int arr[],int len,int key)
{	
	int low=0;
	int high=len-1;	
	int mid;
	while(low<=high)
	{
		mid=(low+high)/2;
		if(key==arr[mid])
		{
		return mid;
		}
		else if(key<arr[mid])
		{
			high=mid-1;
		}
		else
		{
			low=mid-1;
		}
	}
	return -1;
}

int main()
{
	int arr[]={2,4,6,8,10,24};  //定义一个数组
	printf("%d \n",BinSerach(arr,6,4));   //输入数组长度和想要查找的值。
	return 0;
}

![在这里插入图片描述](https://img-blog.csdnimg.cn/20190703150357121.PNG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTE0NDEyMA==,size_16,color_FFFFFF,t_70)

你可能感兴趣的:(用二分法查找数组中的元素)