中易网

C语言实现折半查找

答案:2  悬赏:50  
解决时间 2021-01-25 22:06
C语言实现折半查找
最佳答案

#include 
int look_up(int a[],int n,int x)
{
int left=0,right=n-1,mid;
while(left<=right)
{
mid=(left+right)/2;
if(x==a[mid])
return mid+1;  //加一后才是它的逻辑位序 
else if(xright=mid-1;
else
left=mid+1;
}
if(left>right)
return -1;
}
int main()
{
int a[100],n,x,i,result;
scanf("%d",&n);
for(i=0;iscanf("%d,",&a[i]);
scanf("%d",&a[i]);
scanf("%d",&x);
result=look_up(a,n,x);
if(result>=0)
printf("%d
",result);
else
printf("No
");
}
全部回答

#include<stdio.h>
int find(int a[],int l,int r,int x)
{int i,j,m;
 if(l>r)return -1;
 i=l;j=r;m=(i+j)/2;
 if(a[m]==x)return m;
   else if(a[m]<x)return find(a,m+1,r,x);
     else return find(a,l,m-1,x);
}
int main ()
{int n,i,x;
 scanf("%d",&n);
 int a[n];
 for(i=0;i<n;i++)
   scanf("%d%*c",&a[i]);
 scanf("%d",&x);
 i=find(a,0,n-1,x);
 if(i==-1)printf("Not Find %d! ",x);
   else printf("%d ",i+1);
 return 0;
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
42除以0.5是等于42成以5吗?
农村三朝四字对联
新鲜野玫瑰怎么储存好吗
同心院弘毅冯建功的诈骗手段
辽景宗耶律贤有几个儿子 耶律贤儿子都是谁
肉跟豆腐一样嫩的鱼是什么鱼
死飞牛角把上的刹车怎么取?
百度推广/关键词的最低展现价格和匹配模
我附近的顺丰快递电话
中国(福建)自由贸易试验区的意义
水平照度怎么读
现在从石家庄做客车到承德多少钱,从哪坐,多
学美容到美容养生馆还是美容院好
红包买大小单是骗子吗
什么是有意沟通,什么是无意沟通
推荐资讯
QQ农场进去了怎么是白色的 ?
阳光动力网络会所(石化路店)怎么去啊,我要去
可以免费练习英语口语的网站
宿迁鑫达物流地址在什么地方,我要处理点事
请问WOW更新到2.4.3后,是不是ZAM的BUG全被修
关于豪爵女式摩托车打不着火原因
欢乐旅游地址在什么地方,我要处理点事
寻求只锻炼上半身的减肥有氧运动
求2011《感动中国》中对胡忠夫妇的颁奖词的赏
问一下有没有女孩家的男朋友里有个弟弟的 有
请教荷兰地名
k807次列车时刻表
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?