永发信息网

写一函数实现二分查找法

答案:1  悬赏:0  手机版
解决时间 2021-03-25 09:56
写一函数实现二分查找法
最佳答案
楼主你好

以前写过一个 以下是完整代码:

#include
#define MAX 40
int Half_Search(int a[],int n,int k)
{
int start,end,mid;
start= 0;
end= n - 1;
while(start <= end)
{
mid = (start + end) / 2;
if(k == a[mid])
return mid;
else if(k > a[mid])
start = mid + 1;
else
end = mid - 1;
}
return -1;
}
int main()
{
int a[MAX],n=0,k,p;
do{
scanf("%d",a + n++);
}while(getchar() != '\n');
scanf("%d",&k);
p = Half_Search(a,n,k);
if(-1 == p)
printf("不存在!\n");
else
printf("a[%d]=%d\n",p,k);
return 0;
}

希望能帮助你哈追问能不能加上详细注释 谢谢追答#include
#define MAX 40
int Half_Search(int a[],int n,int k)//二分法查找
{
int start,end,mid;
start= 0;//起点
end= n - 1;//终点
while(start <= end)
{
mid = (start + end) / 2;//中间项
if(k == a[mid])//如果等于中间项 那么直接返回mid
return mid;
else if(k > a[mid])//如果大于中间项 起始位置从mid之后的第一个开始 也就是mid+1
start = mid + 1;
else//如果小于中间项 终点位置就是mid前面一项 也就是mid-1
end = mid - 1;
}
return -1;//查找失败 返回-1
}
int main()
{
int a[MAX],n=0,k,p;
do{
scanf("%d",a + n++);
}while(getchar() != '\n');
scanf("%d",&k);
p = Half_Search(a,n,k);
if(-1 == p)
printf("不存在!\n");
else
printf("a[%d]=%d\n",p,k);
return 0;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
是不是有个叫云消债的平台,我被一些债务困扰
滴灌施肥要注意什么?
我在江苏结婚过,但是没领结婚证,孩子上户口
征途各级要多少经验 那位大大给个1级到一转18
带隹和尤的成语
1升乳胶漆是多少公斤
焊接用的气体有哪些,其性质和用途如何
骚,是女人的错吗Y睾
求广州南到新会的轻轨时间表?
5岁半钢琴 小汤1学多久
06年的途胜后面玻璃上的雨刮器怎么关不了
女友比我高 交往不久 你们觉得她心里介意不介
用一个字代表沉稳?拜托
3分钟看完DNF所有活动_DNF2017买彩票等活动介
碰撞分为哪几种,分别解释一下
推荐资讯
玄武门之变李渊为何不阻止?
ps软件 热成像效果 人体热能分布图应该如何制
唐憎取经西边走谁说东海无龙王
想请问用过成都蓉e宽带的朋友感觉如何?
已知a是实数,函数f(x)=2ax^2+2x-3-a
中国人寿年度最高身故保障是什么意思
什么是高铬锰钢(高烙锰钢),优势是什么
分镜10+0是什么 还有5+12 2+12的 2+0 的是什
丹麦进口牛奶有哪些牌子
餐饮连锁品牌那个牛?
手机在插座上充电,却显示usb什么情况
雷戈萨斯nx200怎么样2016款
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?