用二分法查找数组a[10] = {2,3,6,1,9,8,7,4,0,5}中元素9

 我来答
Soucula
2013-03-02 · TA获得超过3091个赞
知道小有建树答主
回答量:744
采纳率:93%
帮助的人:73.6万
展开全部
int Lookup(int find,int array[],int low,int high)
{
if (low > high)
return -1;//表示未找到元素
int mid = (low + high)/2
if (array[mid] == find)
return mid;//找到元素,元素的位置为mid
if (array[mid] > find)//如果大于要找的值则在下半区间继续找
return Lookup(find,array,low,mid - 1);
else //如果小于要找的值则在上半区间继续找
return Lookup(find,array,mid + 1,high);
}
void main()
{
//序列应该基本有序才能使用二分法
int a[10] = {0,1,2,3,4,5,6,7,8,9};
//序列对应的位置值
int position[10] = {8,3,0,1,7,9,2,6,5,4};
int pos = Lookup(9, a, 0, 9);
if (pos == -1)
{
printf("There is not 9 in the array");
return;
}
//输出映射的位置
printf("The position of 9 in the array is %d",position[pos]);
}
百度网友28cd4bf
2013-02-28
知道答主
回答量:13
采纳率:0%
帮助的人:3.8万
展开全部
二分查找法的前提是数据有序排序,你要先进行排序
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
abcd12345ecjtu
2013-02-28 · TA获得超过267个赞
知道小有建树答主
回答量:335
采纳率:0%
帮助的人:164万
展开全部
嗯,先排序,然后二分查找
来自:求助得到的回答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式