自建函数查找一个数组中一个指定数字的下标数值,自建函数查找一个数组中一个指定数字的下标数量
# define _ CRT _ SECURE _ NO _ WARNINGS 1
#包含stdio.h
int binary_search(int arr[],int k,int sz)
{
//算法的实现
int left=0;
int right=SZ-1;
while(左=右)
{
int mid=(左右)/2;
If (arr[mid] k)//k如下表
{
左=中1;//如果小的话,放在中间偏左,所以偏左1
}
else if (arr[mid] k)
{
右=中1;//大的话在中间右,所以右-1
}
其他
{
返回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 );
}
其他
{
Printf (found,下标为:%d\n ,ret);
}
}k=7
所以下标是元素个数减1,下标是6。
输出如下
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。