【C语言】二分法函数写法-创新互联

#define _CRT_SECURE_NO_WARNINGS 1
#include#include#includeint key_search(int a[], int k, int s)
{int left = 0;
	int right = s - 1;
	while (left<= right) 
	{int mid = (left + right) / 2;
		if (a[mid] >k)
		{	right = mid - 1;
		}
		else if (a[mid]< k)
		{	left = mid + 1;
		}
		else
		{	return mid;
			break;
		}	
	}
	if (left >right)
		return -1;	
}
int main()
{int arr[] = {1,2,3,4,5,6,7,8,9 };
	int key = 17;//要找的数
	int sz = sizeof(arr) / sizeof(arr[0]);//数组元素个数
	//数组传参,实际传递的不是数组本身,而是数组里首元素1地址
	int ret=key_search(arr,key,sz);//在数组中的位置
	if (ret==-1)
	{printf("该数组找不到要寻找的数");	
	}
	else
	{printf("在数组中的位置为第%d位", ret);
	}
    return 0;
}

前天写了二分法,今天用函数的方式把它写了出来。
要值得注意的是,二分法查找只适用于有序数组,且从小到大排列。

创新互联于2013年开始,是专业互联网技术服务公司,拥有项目网站设计、网站制作网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元海港做网站,已为上家服务,为海港各地企业和个人服务,联系电话:028-86922220

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


网页名称:【C语言】二分法函数写法-创新互联
分享网址:http://csdahua.cn/article/cdesoh.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流