C语言——写一个函数,实现一个整形有序数组的二分查找

#define _CRT_SECURE_NO_WARNINGS 1

#include
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[]={1,2,3,4,5,6,7,8,9,10};
	int k=7;
	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;
}

C语言——写一个函数,实现一个整形有序数组的二分查找_第1张图片

你可能感兴趣的:(C语言例题,c语言,算法,数据结构)