有n个整数按由大到小顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值
输入的第一行有两个数n、m。n表示数组有n个数,m表示要找的数。第二行是n个由大到小排序好的数。若有就输出该数所在的位置,无就输出无此数...
输入的第一行有两个数n、m。n表示数组有n个数,m表示要找的数。第二行是n个由大到小排序好的数。 若有就输出该数所在的位置,无就输出无此数
展开
2个回答
展开全部
int a[n];
L=0;R=n;
int mid;
while(L<R)
{
mid=L+(R-L)/2;
if(a[mid]==m)
{
printf("find %d",mid);
break;
}
else if(a[mid]>m) L=mid;
else if(a[mid]<m) R=mid;
}
if(a[mid]!=m) puts("no found");
代码说话,满意请采纳。
L=0;R=n;
int mid;
while(L<R)
{
mid=L+(R-L)/2;
if(a[mid]==m)
{
printf("find %d",mid);
break;
}
else if(a[mid]>m) L=mid;
else if(a[mid]<m) R=mid;
}
if(a[mid]!=m) puts("no found");
代码说话,满意请采纳。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
好高深,须问专业人士
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询