C语言折半查找法

c语言中二分法查找的升级版--折半查找法 最近学到一个比二分法还要精细一些的查找方法:折半查找法 进入正题,1.创建一个数组。2.每次查找前的先明确查找范围也就是下限是low,上限是high(显然low大多数人都是这么理解,反正就是定义两个变量,最好让大家看的明白,见单词知道意思)3.然后让一个变量m去和中间值mid比较大小。4.如果m>mid,下一次查找就从mid之后查找,如果m,下一次就从mid之前查找。 程序实例摆上: #in 阅读详情

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int Dichotomy(int Arr[],int size,int tofind) {
	int left = 0;
	int reght = size - 1;
	while (left <= reght) {
		int mid = (left + reght) / 2;
		if (Arr[mid] > tofind)	
			reght = mid - 1;
		else if (Arr[mid] < tofind)
			left = mid + 1;
		else if (Arr[mid] == tofind)
			return mid;
	}
	return -1;
}
int main() {
	int A, key;
	int Arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9,10 };
	int size = sizeof(Arr) / sizeof(Arr[0]);
	while (1) {
		printf("请输入任意0-9的个位数\n查找其在本数组中的位置\n");
		scanf("%d", &key);
		A = Dichotomy(Arr, size, key);
		if (A>=0)
		printf("该数字在本数组中的位置下标为:%d\n\n", A);
		else
		{
			printf("-1\n该数字不在本数组内\n\n");
		}
	}
	system("pause");
	return 0;

}
折半查找的简单C语言算法 使用折半查找,输入一个整数,查找是否在数组中,如在给出下标,否则-1 立即下载

相关推荐

WRF后处理避坑指南:从namelist配置到降水计算的全流程解析

本文提供了一份详尽的WRF模式后处理避坑指南,涵盖从理解wrfout文件结构、核心变量解析到累计降水计算与专业气象图绘制的全流程。重点解析了RAINC与RAINNC的正确处理方法,并分享了使用wrf-python库高效绘制位势高度叠加风场图、累计降水图等专业图表的实战技巧与代码,旨在帮助用户规避常见错误,提升后处理效率与图表质量。

weixin_29200485的博客 353

C语言——折半查找法

查找数据位序——折半查找法

m0_69438595的博客 3万+

MaxEnt物种分布预测中的常见误区与优化技巧:如何提高模型准确率

本文深入探讨了MaxEnt物种分布预测模型从基础应用到精准预测的进阶实践。针对模型准确率提升,文章系统分析了环境变量筛选、模型参数调优、结果批判性解读等核心环节的常见误区,并提供了基于生态位模型原理的深度优化技巧,帮助研究者产出更可靠、可解释的预测结果。

weixin_29219539的博客 594

C语言折半查找法(超详细)

折半查找法仅适用于对已有顺序的数组、数据进行操作!!!(从小到大)自我总结:折半查找法就是相当于(通过改变low或high的大小)把中间位置指到了key那个数那里,所以mid应该处于循环里面,即mid=(high+low)/2。注意:low,mid,high都要与下标绑定,也就是说它们就是下标。且循环条件是:high>=low. 同时注意:⑴若原来数组是由小到大排列的则: mid=(high+low)/2; if(key<a[mid])//说明要找的...

m0_56168966的博客 5万+

【Java】利用反射执行Spring容器Bean指定的方法,支持多种参数自动调用

目录 使用情景 目的 实现方式 前提: 思路 核心类 测试方法 使用情景 将定时任务录入数据库(这样做的好处是定时任务可视化,也可以动态修改各个任务的执行时间),通过反射执行对应的方法; 配合Netty实现简单的HTTP请求处理框架 其他需要使用反射执行Spring方法的业务亦可 目的 很多文章都提到了反射,但是对于方法参数处理这一块都是明确了类型,不支持按照实际参数动态转换,而本篇文章提供了一个思路怎么做到方法参数的动态调用。 大家也可以...

ITjianshuzhai的博客 2334

学习Python,小白如何搭建Python环境?

学习Python,首先需要搭建好Python环境,主要分为【运行环境搭建】、【开发环境搭建】以及【Python环境配置】三个环节,接下来我将对Python环境搭建这三个部分进行介绍。

weixin_72923265的博客 9003

C语言折半查找

1.查找:意思就是要找到指定元素, 搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为空,则代表找不到。这种搜索算法每一次比较都使搜索范围缩小一半 2.折半查找要求被查找的元素要按顺序排列(从小到大或从大到小) #include<stdio.h> #define NUM 10//宏定义,即代码中所有的NUM都等于10 int .

Blow out the reading lamp, full of moon 6501

EPLAN二次开发入门:Visual Studio 2019环境配置与插件调试实战

本文详细介绍了EPLAN二次开发入门的关键步骤,重点讲解如何在Visual Studio 2019中配置开发环境并进行插件调试。通过创建符合命名规范的项目、引用核心API库、实现插件接口以及使用附加进程调试等实战技巧,帮助电气工程师快速掌握EPLAN插件开发,提升自动化设计效率。

h6i7j8的博客 763

C语言:折半查找法

这是一个使用折半查找法在有序数组中查找元素的C语言程序。程序首先初始化一个升序排列的15个整数数组,然后提示用户输入要查找的数。通过设置左右边界和中间值进行折半查找,若找到目标数则输出其位置,否则显示查无此数。程序包含边界检查、查找过程处理以及结果输出功能,能够有效处理查找成功和失败两种情况。

weixin_45755708的博客 473

【PCL 特征】积分图法线估计

本文介绍了基于积分图的有序点云法线估计方法。通过利用点云数据的行列式结构特性,该方法避免了传统KD树搜索,采用积分图将邻域统计运算复杂度从O(k²)降至O(1)。详细阐述了四种法线估计算法:协方差矩阵法(精度最高)、平均3D梯度法(实时性好)、平均深度变化法(适合SLAM)和简单3D梯度法(速度最快)。重点分析了积分图构建、动态窗口平滑处理、法线方向调整等关键技术,并提供了PCL实现代码示例。实验表明,不同方法在精度和速度上存在显著差异,可根据具体应用场景选择合适算法。

yijiujiusan的博客 276

MIC:最大信息系数

目录 1. 概念 1.1 MIC 1.2 互信息 2.MIC的优点 3. 算法原理 3.1 MIC公式原理 3.2MIC计算步骤 (1)计算最大互信息值 (2)对最大的互信息值进行归一化 (3)选择不同尺度下互信息的最大值作为MIC值 4. 代码实现 6. 其他方法 1. 概念 1.1 MIC MIC,即(Maximal Information...

满腹的小不甘 5万+

c语言编程编一个折半查找法,c语言作业(数&折半查找法).doc

c语言作业(数C语言程序设计实验报告实验名称数组学 院材冶学院专业班级成型1101姓 名李xx学 号2011任课教师徐彬实验时间2012年11月2日星期五实验目的熟练掌握一维数组、二维数组的定义、初始化和输入/输出方法;熟练掌握字符数组和字符串函数的使用;掌握与数组有关的常用方法(如查找、排序等)。实验内容编程实现“折半查找”的过程。要求设定一个整型数组存放20个元素,采用直接赋...

weixin_29103603的博客 591

手把手教你学simulink(24.4)--Simulink在机器人视觉场景下的应用——基于视觉的物体跟踪与抓取

该系统集成了图像处理、目标检测、运动估计、路径规划、抓取控制和视觉反馈等多个功能模块,能够实现实时处理视觉数据、检测并跟踪移动物体、规划最优路径并控制机械臂进行精确抓取。本项目的目标是使用Simulink和MATLAB设计一个基于视觉的物体跟踪与抓取系统,该系统能够实时处理图像数据,检测并跟踪移动物体,规划最优的抓取路径,并控制机械臂进行精确抓取。为了验证系统的性能,我们在Simulink中搭建了基于视觉的物体跟踪与抓取系统的仿真模型。

MHD0815的博客 257

c语言:折半查找法(二分查找法)

折半查找法(half-interval search) 优点:比较次数少,查找速度快,平均性能好 缺点:是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。 注意:折半查找法仅适用于对已有顺序的数组、数据进行操作!!! 例如:要在数组arr[]={8,7,9,6,4,1,2,5,3,10,11};中查找key=7的位置;首先,我们要先将数组arr中...

boomLeer的博客 2万+

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

折半查找法在C语言中的应用

折半查找法的原理很简单,就是将有序数组一分为二,然后判断目标元素在哪一侧,再递归地对这一侧进行查找,直到找到目标元素或者确定目标元素不存在为止。3.判断目标元素target是否等于数组的中间元素array[mid],如果相等,说明已经找到目标元素,返回mid。5.如果目标元素大于中间元素,说明目标元素在数组的右侧,将搜索范围缩小为[mid+1, right],重复步骤2。4.如果目标元素小于中间元素,说明目标元素在数组的左侧,将搜索范围缩小为[left, mid-1],重复步骤2。

我点评的博客 365

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

c语言 (冒泡法,选择法,折半查找法,插入法)

c语言 (冒泡法,选择法,折半查找法,插入法) 冒泡法 (1)从第一个数开始,相邻两个数两两比较,将大的(或小的)交换到后面,然后继续比较第2、3个数……当比较完最后两个数的时候,最大数(或最小数)便排在最后了。此过程称为“一趟”。 (2)将最大数排除在外,其余数重复步骤1。 (3)重复步骤2,直到所有数都排好为止。 #include<stdio.h> int main() { int i,j,a[6],t; printf("输入六个整数:\n"); for(i=0;i<=5;

m0_53328239的博客 718

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

c语言将折半查找一个数组,c语言作业(数组&折半查找法).doc

您所在位置:网站首页 > 海量文档&nbsp>&nbsp计算机&nbsp>&nbspC/C++资料c语言作业(数组&折半查找法).doc8页本文档一共被下载:次,您可全文免费在线阅读后下载本文档。 下载提示1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。2.该文档...

weixin_36325615的博客 877

c语言折半查找输出坐标,用c语言编写折半查找法

折半查找法又称为二分查找,是在一个有序数组里面找到一个具体的数,方法我在代码里注释到了。#includeint binary_search(int *arr, int key, int sz)//创建一个函数{int left = 0;//定义数组中元素的左下标int right = sz - 1;//定义数组中元素的右下标int mid = 0;//定义数组中一个元素的下标while (left...

weixin_26872803的博客 704

C语言,折半查找法

C语言,折半查找法

m0_61180685的博客 2572

C语言程序设计:折半查找法

提示:折半查找法是常用的快速查找算法,请熟练掌握。其使用条件是被查找的数据集必须是有序排列的。注意:程序格式给出如下,查找函数已被命名为search,请在此基础上补充完善程序。假设有10个数据,且已按升序排序。:用“折半查找法”在有序整数集中查找某个整数,若找到则返回其下标值,否则返回-1。函数类型 search(形式参数列表) //函数定义。时间限制:500ms内存限制:32000kb。从键盘读入已按升序排序的整数序列;若找到则输出:"下标为:%d\n"否则输出:"没有找到\n"

qq_72375109的博客 1495

C语言入门课程之课后习题之折半查找法

例如:要在数组arr[]={8,7,9,6,4,1,2,5,3,10,11};C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发,使用C语言可以以简易的方式编译、处理低级存储器。二分法查找时,将所查找的key与mid比较,例如key=7,即可缩小查找范围在mid和high之间;

mrjieke6的博客 690

C语言中折半查找法(二分法)的实现

折半查找法也叫做二分查找,顾名思义,就是把数据分成两半,再判断所查找的key在哪一半中,再重复上述步骤知道找到目标key; 注意:(咳咳,敲黑板)折半查找法仅适用于对已有顺序的数组、数据进行操作!!! 很显然,折半查找法相对于其他查找方法例如顺序查找法效率要高很多; 下面我们来实际操作一下,了解二分查找的奥义。 例如:要在数组arr[]={8,7,9,6,4,1,2,5,3,10};中查找key=...

顾南怀 6万+

c语言折半查找法找字符,折半查找法(C语言)

折半查找法(C语言)#include #define max 20int binary(int x,int list[],int n) /*从list[]中查找x*/{int low,high,mid;low=0;high=n-1;while(low<=high){mid=(low+high)/2; /*折半*/if(xhigh=mid...

weixin_34931370的博客 651
上一篇: C语言猜数字游戏
下一篇: C语言 登陆窗口
EndOrBegin
博客等级 码龄7年 14粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值