有n个整数按由大到小顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值

输入的第一行有两个数n、m。n表示数组有n个数,m表示要找的数。第二行是n个由大到小排序好的数。 若有就输出该数所在的位置,无就输出无此数

第1个回答  2012-12-17
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");
代码说话,满意请采纳。本回答被提问者和网友采纳
第2个回答  2012-12-17
好高深,须问专业人士
相似回答
大家正在搜