欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【C语言】二分法查找的函数实现

程序员文章站 2024-03-17 14:52:28
...

函数描述:

自定义一个函数,传入数组名,数组元素个数,需要查找的数字,用二分查找实现。找到了返回元素的下标,找不到返回-1

函数实现:

int binary_search(int* p, int n, int num)//p:数组首元素地址  n:数组的元素个数  num:需要查找的数
{
	int left = 0;//数组元素左下标
	int right = n - 1;//数组元素的右下标

	//开始查找,并更新左右下标
	while (left <= right)
	{
		int mid = (left + right)/2;
		if (num > p[mid])
			left++;
		else if (num < p[mid])
			right--;
		else
			return mid;
	}
	return -1;
}

ps:此代码数组元素必须顺序排列,若逆序排列将left++和right- -位置调换即可。