在一个有序数组中查找具体数字的方法,在一个有序数组中查找具体数字的个数
要求:在数组中找到一个特定的数字,并打印它的下标。
算法:转换搜索算法(二分搜索法算法)
左下标:int left=0;
右下标:int right=SZ-1;
数组中数字的个数SZ=sizeof(arr)/sizeof(arr[0]);
Array: char arr []={1,2,3,4,5,6,7,8,9,10 };
int med=(右左)/2;
代码图:
代码:
#包含stdio.h
int main()
{
char arr[]={1,2,3,4,5,6,7,8,9,10 };
int b=0;
int SZ=sizeof(arr)/sizeof(arr[0]);
int left=0;
int right=sz
Printf(请输入您要查找的数字(1-10之间):);
scanf(%d ,
While(left=right)//确保right大于或等于left {
int med=(左右)/2;
if(arr[med] b)
{
左=med 1;
}
Else if(arr[med] b)//arr[med]表示与下标{
右=med-1;
}
其他
{
Printf (found,其对应的下标为:%d\n ,med);
打破;
}
}
如果(左/右)
{
Printf(未找到\ n );
}
返回0;}
注:要知道具体算法,可以写好代码。
转载请联系作者取得转载授权,否则将追究法律责任。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。