二分查找法 c语言程序设计?

如题所述

我给你一个例子:
#include<stdio.h>
#define N 10
main()
{
int k,i;
int table[N]={0,2,4,6,8,10,12,14,16,18};
int mid,left=0,right=N-1;
int find=0;
printf("input your number:");
scanf("%d",&k);
while(!find&&left<right)
{
mid=(left+right)/2;
if(k==table[mid])
find=1;
else if(k<table[mid])
right=mid-1;
else left=mid+1;
}
if(find==1)
printf("%d in table[%d]\n",k,mid);
else
printf("can't find the number%d.\n",k);
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2016-01-15
#include <stdio.h>

int binfind(int val[] , int num , int value)
{
int start = 0;
int end = num - 1;
int mid = (start + end)/2;
while(val[mid] != value && start < end)
{
if (val[mid] > value)
{
end = mid - 1;
}
else if (val[mid] < value)
{
start = mid + 1;
}
mid = ( start + end )/2;
}
if (val[mid] == value)
return mid;
else
return -1;
}

int main()
{
int nums[] = {1 , 3 , 4 ,7 ,8 , 12 ,45 ,67 ,97 ,123 ,456 ,675 ,1111 , 4534 , 4563};
int result = binfind(nums , sizeof(nums) / sizeof(nums[0]) , 45);
if (result < 0)
{
printf("查无此数");
}

}
第2个回答  2006-10-21
比如要在0到100中找42
那么先2分
50不是
50>40
再2分
25
依次
直到找到

c语言 最快的查找方式
2、查找的线性表分:无序线性表、有序线性表、分块有序线性表。3、对无序线性表只能采用顺序查找,顺序查找的平均比较次数为(n+1)\/2 4、对有序线性表可以采用二分查找,二分查找的比较次数为log2n 5、对分块有序线性表可以采用分块法查找。C语言是一种计算机程序设计语言,它既具有高级语言的...

如何轻松考过计算机二级
全国计算机二级等级考试分为两个部分,第一项为二级公共基础,这是所有考生都要考的,第二项为你所选的分类,如c语言程序设计等等。就我考试的经验来看,二级公共基础为最易得分项,主要考察考生对概念的理解及掌握。下面为我总结的二级公共基础中易考及必会的内容,我相信只要掌握了它,二级公共基础这项就可以轻松过关啦...

2020年浙江省高校计算机二级C语言考试大纲
1、检索(查找)算法:无序数据序列之顺序查找法和有序数据序列之二分查找法 2、分类(排序)算法:冒泡法和选择法 3.遍历算法:一维数组和二维数组的遍历 4、数值计算、数据的查询统计和修改、字符处理等常用算法 以上就是小编整理的2020年浙江省高校计算机二级C语言考试大纲,准备参加二级考试的同学们都来...

了解物联网知识需要学习哪些知识
在学完高等数学,物理,化学,通信原理,数字电路,计算机原理,程序设计原理等课程后开设本课程,全面了解物联网之RFID、M2M、传感网、两化融合等技术与应用。C语言程序设计 《C语言程序设计》,清华大学出版社,等教材。物联网涉及底层编程,C语言为必修课,同时需要了解OSGi,OPC,Silverlight等技术标准 J...

有哪位大师可以提供一份C语言程序设计的源代码!是关于图书管理系统的...
scanf(" %s",&CNum); Borrow(Bo,Lin,BNum,CNum); break; case 4:\/\/归还 printf("请输入想要归还的书的书号:\\n"); scanf(" %s",&BNum); printf("请输入图书证号:"); scanf(" %s",&CNum); Return(Bo,Lin,BNum,CNum); break; case 5:\/\/查找\/\/根据书号查找 printf("请输入书号:");\/\/...

自学c语言 零基础 看什么书 该怎么学
《《啊哈C语言:小学生坐在马桶上都可以读懂的C语言编程入门书》.zip》百度网盘资源免费下载 链接:https:\/\/pan.baidu.com\/s\/1aEXrb1oxnRmMWUlafELpfQ 提取码:pusr啊哈C语言:小学生坐在马桶上都可以读懂的C语言编程入门书

C++折半查找法
折半查找法是算法一种,可以被任何计算机语言使用。用C语言自然也可以实现。1、定义:在计算机科学中,折半搜索(英语:half-interval search),也称二分搜索(英语:binary search)、对数搜索(英语:logarithmic search),是一种在有序数组中查找某一特定元素的搜索算法。搜索过程从数组的中间元素开始,...

求c++程序可以解n次方程。
只能通过估计解的区间,用二分查找法逼近数值解。N次问题一般有N个解,而估计这N个解的区间不是一件容易的事情。没有完美的方法。这可用牛顿迭代法求解。include<stdio.h> include<math.h> double f(double x) \/*函数*\/ while(1){ cin>>a>>b>>c;\/\/调用计算公式 \/\/输出结果 } ...

C语言程序bsearch函数的一些疑问
sorry代码太乱了没看,但是bsearch是二分查找函数,传入的带查找数据(arr)必须是有序的。没有排序功能。

计算机三级的内容是什么
⑵.汇编语言程序设计。 Ⅲ、 考试说明 一.考试形式 考试形式:笔试; 语言环境: 高级语言:Pascal或C ; 汇编语言:8086汇编语言或MCS-51系列单片机汇编语言。 考试时间::150分钟,评分采用百分制,60分为及格。 二.试卷题型结构 1.选择题:60% 2.填空题:40% 3.试卷中部分选择题与全部填空题中含有“8086...

相似回答