c语言折半查找法

c语言编程实现“折半查找”的过程。

//参考代码如下:

#include stdio.h

int main()

{

int i, j, n, k=0, isFound=0;

int num[15] = {88,86,75,74,61,56,52,43,39,34,31,22,18,16,8}; //测试数组

printf(“请输出一个整数:\n”);

scanf(“%d”, n);

i = (int)15/2; //对折位移量

j = (int)15/2; //取数“指针”

while(k2)

{

i = (int)i/2;

if(i == 0) k++; //i==0 即折半到无可再折时,仍有最后一次比较,故以k做计数

//若未相等,计算下一循环指针的位置

if(nnum[j])

j = j + (i + 1);

else if(nnum[j])

j = j – (i + 1);

else

{

isFound = 1;

break; //若找到相等数,标记已找到并退出循环

}

}

//输出结果

if(isFound)

printf(“该数是数组中第%d个元素的值\n”, j);

else

printf(“查无此数!\n”);

return 0;

}

c语言折半查找法

c语言的折半查找法

你的数组的索引为0-14

所以你可以设两个变量

这两个变量a,b是用来限制你要的数的范围的

一开始a=0 b=14

接着取索引为int((a+b)/2 )的元素与你输入的比较

如果比输入的小的话那么设a=int(a+b)/2 )

接着继续取索引为int((a+b)/2 )的元素与你输入的比较

如果比输入的大的话那么设b=int(a+b)/2 )继续找下去 如果相等的话就打印并break

不然一直到a=b退出循环

C语言中的“折半查找法”是什么?

折半查找法也称为二分查找法,它充分利用了元素间的次序关系,采用分治策略,可在最坏的情况下用O(log n)完成搜索任务。

例如排序后的数据是1 5 12 35 64 78 89 123 456

你要查找12,首先用12跟上面排好顺序的9个数中间那个比较(64),1264,因此你查找的数据在前半部分,即1 5 12 35 64,再用12跟前半部分中间那个数比较(12),这样找了2次就找到了

折半查找的目的是提高查找的效率!

本文来自投稿,不代表【】观点,发布者:【

本文地址: ,如若转载,请注明出处!

举报投诉邮箱:253000106@qq.com

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2024年3月28日 05:17:17
下一篇 2024年3月28日 05:24:38

相关推荐

  • c语言建立坐标系,c语言中坐标是什么格式的字符

    C语言编写用*输出A的图样。要求是用循环语句。拜托大家帮帮忙。_百度… 1、先双击打开桌面上的C-Free5软件。打开编程软件以后,创建一个新页面来编写程序;可以直接点击空白页面,也可以先点击【文件】,再点击【新建】。 2、这个程序首先要求用户输入要输出的行数,然后使用两个嵌套的for循环来打印出图案。外层循环控制行数,内层循环控制每行输出的星号…

    2024年5月18日
    2800
  • c语言实验指导,c语言实验指导书电子版

    …主编的《C语言程序设计实验指导》的答案。可以是课件。急用_百度知… 运行一个C语言程序,一般需要经过如下几个步骤:①上机输入并编辑源程序;②编译源程序;③与库函数连接;④生成可执行目标程序;⑤运行目标程序。 (1)操作系统的设计与实现。 请编一程序,用赋初值的方法使cl、cccc5五个变量的值分别为,’C’、’h’、’i’、’n’、…

    2024年5月18日
    3900
  • c语言高级程序,c语言高级程序设计实验体会

    为什么说C语言是高级语言呢? 高级语言主要是相对于汇编语言而言的,基本脱离了机器的硬件系统,用人们更易理解的方式编写程序。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言,能以简易的方式编译、处理低级存储器。 C语言是高级语言。机器语言(machine language)是一种指令集的体系。这种指令集,称机器码(machin…

    2024年5月18日
    4900
  • c语言控制台界面代码下载,c语言 控制台

    c语言如何调试程序? 1、VC下单步调试的基本步骤:F5进入调试。F10单步调试,F11进入子函数单步调试。调试常用快捷键:逐过程调试F10 。逐语句调试F11。跳到光标处Ctrl加F10。跳出本循环Shift加F11 。设定断点F9 。 2、打开你要写c++程序的文件夹,我们这里新建一个Test文件夹并打开test,打开后:使用VScode运行调试C/C+…

    2024年5月18日
    3500
  • 关于64位c语言下载官方下载的信息

    求C语言编程软件的下载地址? 下载地址:http://sourceforge.net/projects/orwelldevcpp/?source=directory 安装教程可以到百度经验上面找。 下载软件压缩包文件,点击“VC6SPISO”内“AUTORUN.EXE”文件可进入vc++0中文版的安装操作界面,如下图所示,选择“中文版”。提示“Viscuai…

    2024年5月18日
    4900
  • 传智播客c语言教学视频,传智播客c语言答案

    谭浩强c语言视频教程全集下载 1、链接:提取码: f1bt 谭浩强老师C语言视频教程是2007年5月17日发布的网络课程,参考于C语言程序设计。 2、http:// C程序设计视频教程(曾怡):本套视频教程由曾怡副教授讲解,使用教材为:《C程序设计》 谭浩强 清华大学出版社出版。是难得的C语言学习视频教程。 3、语言视频教程 谭浩强编,曾怡教授讲解! 地址:…

    2024年5月18日
    5100
  • 如何用c语言做计算器,如何用c语言做计算器视频

    用C语言编写一个计算器程序 首先,打开Vs 2010,如图。找到左上角的新建并点击,给文件为简单计算器,单击确定。点击下一步,注意勾选空项目,点击下一步,点击完成。 C语言是一个有结构化程序设计、具有变量作用域(variable scope)以及递归功能的过程式语言。C语言传递参数均是以值传递(pass by value),另外也可以传递指针(a point…

    2024年5月18日
    3500
  • c语言地址是什么,c语言地址的概念

    c语言中元素地址是什么? 1、在C语言中,可以使用&运算符来获取一个变量或数组元素的地址。 对于变量:int x = 10;int* ptr = // 获取变量x的地址 这里`&x`表示变量x的地址,通过将其赋给指针变量ptr,ptr就指向了x的地址。 2、C语言中数组首地址和数组第一个元素的地址关系如下:它们的地址值是相等的。第1个元素的地…

    2024年5月18日
    3300
  • 99乘法表c语言流程图,99乘法表的c语言程序

    C语言编程九九乘法表 九九乘法表共9行9列,重点考察for循环的掌握情况。下面给出了输出完整乘法表、右上、右下、左上、左下乘法表的代码。 首先打开VC++0软件,点击左上角的file,然后选择新建,这里我们新建一个控制台应 用程序,并输入工程名。点击确定后,提示问你创建什么工程,这么我们选择”一个空工程“,然后点击确定。 根据数学规则,遍历两个乘数,并逐行输…

    2024年5月18日
    3400
  • c语言容器中数据求和,c语言 容器库

    【C语言】数据求和 首先把头文件,main函数写好#includestdio.h main(),如下图所示。之后需要定义几个变量,一个存放和,一个从1开始到100,如下图所示。 思路:直接定义两个变量n和sum,n用于接受键盘输入,sum用于存储累加和,每次输入并累加求和。 算法:1 输入N;2 循环输入N个数值;3 将每个数值累加到结果上;4 循环结束后输…

    2024年5月18日
    5100

发表回复

登录后才能评论



关注微信