编辑代码

#include <stdio.h>
#include <string.h>

int binary_search(int arr[], int k, int sz)
{
	//算法实现
	int left = 0;
	int right = sz - 1;

	while (left <= right)
	{
		int mid = (left + right) / 2;   //中间元素下标
		if (arr[mid] < k)
		{
			left = mid + 1;
		}
		else if (arr[mid] > k)
		{
			right = mid - 1;
		}
		else
		{
			return mid;
		}
	}
	return -1;
}

int main()
{
	int arr[10] = { 6,7,8,9,10,1,2,3,4,5 };
	int k = 6;
	int sz = sizeof(arr) / sizeof(arr[0]);
	int ret = binary_search(arr, k, sz);

	if (ret == -1)
	{
		printf("找不到指定数字\n");
	}
	else
	{
		printf("下标是: %d\n ", ret);
	}

	return 0;
}