#include <stdio.h>

//实现一个二分查找函数
int bin_search(int arr[], int left, int right, int key)
{
	int mid = 0;
	while(left<=right)
	{
		mid = (left + right)>>1;
		if (arr[mid] > key)
		{
			right = mid - 1;
		}
		else if(arr[mid] < key)
		{
			left = mid + 1;
		}
		else
		{
			return mid;//找到了,返回下标
		}
	}
	return -1;//找不到
}

int main()
{
	int arr[] = {1,2,3,4,5,6,7,8,9,10};
	int left = 0;
	int right = sizeof(arr) / sizeof(arr[0]) - 1;
	int key = 7;
	int xxx = 0;
	xxx = bin_search(arr, left, right, key);
	printf("xxx=%d\n",xxx);
	if (xxx == -1)
		printf("没找到\n");
	else
		printf("找到了,arr[%d]=%d\n",xxx,arr[xxx]);
	return 0;
}

二分查找算法_#include