【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- -位置调换即可。