二分法查找C语言

二分法查找(折半查找)

适用于数据量较大,且数据是排好序的。

解题思路:假设数据是按升序排序的,对于给定的要查找的k,从数列

的中间位置mid开始比较

如果arr[mid]等于k,则查找成功;

如果arr[mid]小于k,left = mid +1,则在数列的后半段查找( arr[mid+1] , arr[right] )

如果arr[mid]大于k, right= mid - 1,则在数列的前半段查找(arr[left] , arr[mid -1])

例题

给定一个数组arr[] = {1,2,3,4,5,6,7,8,9,10}要查找的值k = 7,刚开始arr[left]=1,

arr[right] = 10, mid = (0+9)/2 = 4,所以arr[mid] = 5。

k>arr[mid],所以left = mid + 1= 5,mid = (5+9)/2 = 7, 此时arr[left] = 6,

arr[mid] = 8, arr[right] = 10. k<arr[mid],所以right= mid - 1,在重新找到

mid的值,如果继续重复以上步骤知道找到为止。

代码如下

西~西~
关注 关注
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
二分法数据查找C语言实现
04-27
二分法数据查找C语言实现,只有10%程序员能正确实现二分查找算法--http://news.csdn.net/a/20100423/218099.html
二分法查找C语言实现
Paul_YQ的博客
02-08 2212
二分法查找C语言实现: while的条件里,也可把k<0写到循环体里面去,用break语句跳出循环,break可以用在循环语句中,也可用在switch语句中。 C语言实现: #include using namespace std; int main() { short low{ 0 }, high{ 19 }, mid{0},k{ -1 }; int m;//想要查找的值 short i...
二分法查找c语言案例,二分法查找C语言
weixin_32427471的博客
05-18 418
二分法是一种高效的查找方法,其适用于已经排好序的数组基本思路从数组最中间的数开始查找判断,若不是需要查找的数字,则比较大小,之后则在从中间分开的两边中的一边从最中间开始查找判断,以此类推算法描述这里以升序数组为例,降序数组类似记录数组最中间数的下标,将其中的数与要查找的数进行比较若相等,停止查找,若大于要查找的数,则将数组下标上限换为较大半区的最小下标;若小于要查找的数,则将数组下标的下限换为较小...
C语言二分法查找详解
m0_62918577的博客
07-24 7754
C语言里的二分法查找,加上自己的理解和图片详解。
C语言二分法查找
热门推荐
蔡欣致的个人博客
10-29 1万+
C语言二分法查找
二分法查找c语言运行结果,二分法查找c语言_二分法查找_二分法查找算法
weixin_42395462的博客
05-24 196
首先开始最基本的Binary Search, 数组是有序的,但是有重复数。例题: Search for a Range复杂度:时间O(log n), 空间O(1).分析: 首先需要复杂度在O(log n)左右,显然暗示了Binary Search是首选,然后注意这道题是需要找到一个range,并不是找到target的位置就可以了。class Solution{public:vector searc...
c语言 二分法查找
05-11
c 二分法查找二分法查找二分法查找二分法查找二分法查找二分法查找二分法查找二分法查找二分法查找二分法查找二分法查找二分法查找二分法查找二分法查找二分法查找二分法查找二分法查找二分法查找二分法查找二分法...
二分法查找算法代码 c语言实现
08-20
欢迎下载,资源共享。c语言实现。排序方法
二分法查找某数的C语言程序
09-05
该资源用C语言写的,通俗易懂,用了很多基础的语法,缺点是没有把他编写成调用的函数
二分法查找.zip_二分查找_二分法
07-14
C语言编程学习,使用二分法查找最大/最小数据
电子学会C/C++编程等级考试2024年03月(四级)真题解析
人生就是一个不断学习的过程
05-11 392
题目包括:最长上升子序列、重启系统、硬币、奶牛散步
unix C之环境变量
Python私教
05-11 359
每个进程都有自己的一张环境变量表,表中的每个条目都是形如 key=value 的键值对形式的环境变量。进程可以通过环境变量访问计算机资源。在终端下输入env命令,可以查看环境变量列表。通过echo $name 可以查看某个环境变量的值。全局环境变量:当前shell和其子进程都是可见的局部环境变量:只有当前shell可见unset namePATH:存储了执行命令时,系统中查询命令的路径。PS1:用来影响提示符的内容。所谓环境变量表就是一个以NULL指针结束的字符指针数组。
软考-考生常见操作说明-202405101400-纯图版.pdf
05-14
软考官网--2024常见操作说明:包括如何绘制网络图、UML图、表格等 模拟作答系统是计算机技术与软件专业技术资格(水平)考试的电子化考试系统界面、作答过程的仿真系统,为各级别、各资格涉及输入和页面显示的部分题型提供体验性练习。
setuptools-34.0.3.zip
最新发布
05-14
Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。
基于遗传优化GA的三目标优化仿真【包括程序,注释,操作步骤】
05-14
1.版本:matlab2022A。 2.包含:程序,中文注释,仿真操作步骤(使用windows media player播放)。 3.领域:遗传优化 4.仿真效果:仿真效果可以参考博客同名文章《基于遗传优化GA的三目标优化仿真》 5.内容:基于遗传优化GA的三目标优化仿真。遗传算法(Genetic Algorithm, GA)是一种模拟自然选择和遗传机制的全局搜索优化方法,广泛应用于解决复杂优化问题,包括具有多个目标的优化问题,即多目标遗传算法(Multi-Objective Genetic Algorithm, MOGA)。在这里,将三个目标函数进行统一的编码,通过单目标遗传优化的方式,同步求解三个目标函数的最优值。 6.注意事项:注意MATLAB左侧当前文件夹路径,必须是程序所在文件夹位置,具体可以参考视频录。
基于单通道脑电信号的自动睡眠分期研究.zip
05-14
本项目使用了Sleep-EDF公开数据集的SC数据进行实验,一共153条整晚的睡眠记录,使用Fpz-Cz通道,采样频率为100Hz 整套代码写的较为简洁,而且有添加相应的注释,因此进行分享,而且不仅仅说是睡眠分期,也可以作为学习如何使用神经网络去进行时序数据分类问题的一个入门项目,包括怎么用GRU、LSTM和Attention这些经典网络结构。 网络结构(具体可查看network.py文件): 网络整体结构类似于TinySleepNet,对RNN部分进行了修改,增加了双向RNN、GRU、Attention等网络结构,可根据参数进行调整选择。 定义了seq_len参数,可以更灵活地调整batch_size与seq_len。 数据集加载(具体可查看dataset.py文件) 直接继承自torch的Dataset,并定义了seq_len和shuffle_seed,方便调整输入,并复现实验。 训练(具体可查看train.py文件):
setuptools-27.3.1.tar.gz
05-14
Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。
setuptools-12.0-py2.py3-none-any.whl
05-14
Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。
setuptools-11.0.tar.gz
05-14
Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。
二分法查找c语言程序
10-20
下面是C语言实现二分法搜索的程序,其中包含了注释以方便理解。代码如下: ```c #include <stdio.h> /* * 二分法搜索函数,输入参数为要搜索的数组、始下标、结束下标以及要搜索的元素。 * 函数返回目标元素在数组中的下标位置,如果未找到则返回-1。 */ int binary_search(int arr[], int start, int end, int target) { while (start <= end) { int mid = start + (end - start) / 2; // 取中间位置 if (arr[mid] == target) { // 找到目标元素,返回下标位置 return mid; } if (arr[mid] < target) { // 目标元素在右半部分,更新起始下标 start = mid + 1; } else { // 目标元素在左半部分,更新结束下标 end = mid - 1; } } return -1; // 未找到目标元素,返回-1 } int main() { int arr[] = {2, 5, 7, 9, 11, 15, 18, 20}; // 有序数组 int n = sizeof(arr) / sizeof(arr[0]); // 数组长度 int target = 11; // 要查找的元素 int index = binary_search(arr, 0, n - 1, target); // 查找目标元素 if (index != -1) { // 找到目标元素,输出下标位置 printf("目标元素 %d 在数组中的下标位置为 %d\n", target, index); } else { // 未找到目标元素 printf("未找到目标元素 %d\n", target); } return 0; } ``` --相关问题--:

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 回调函数,使用冒泡排序模拟qsort函数 85
  • C语言——青蛙跳台阶问题 79
  • 指针进阶----C 69
  • 最大公约数的求法--C 65
  • 字符串逆序---C 64

最新评论

  • 指针进阶----C

    侍书_: 厉害啦老铁,一起加油呀表情包

  • 回调函数,使用冒泡排序模拟qsort函数

    侍书_: 厉害啦老铁,一起加油表情包表情包

  • 指针进阶----C

    honortech: 写的很不错呀,支持支持表情包

  • 字符串逆序---C

    LMY15: 写的不错哦

  • 浮点数在内存中的存储---C

    LMY15: 写的好详细哇

最新文章

  • 回调函数,使用冒泡排序模拟qsort函数
  • 指针进阶----C
  • 浮点数在内存中的存储---C
2023年12篇
2022年1篇

目录

目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

聚圣源起名网免费取名打分可卡因的颜色通常是疫情防控主题班会时空漩涡姓王的怎么起名大全衡水区号建筑行业起名用哪些字好ps字体下载包异界之华山弟子香料店铺起名陌陌平生草药的起名dnf偷渡潘氏起名女孩名企业咨询公司起名取名国家主席选举古诗起公司名我的知青丈夫被古代来的将军穿了猪小孩起名用什么字一直播官网平山绫关于蔬菜公司的起名产后恢复店名字怎么起12星座爱情发簪店铺起名深圳单身公寓德福网孩子姓曹起名大全六道玄符公司名称大全起名网淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男孩疑遭霸凌 家长讨说法被踢出群国产伟哥去年销售近13亿网友建议重庆地铁不准乘客携带菜筐雅江山火三名扑火人员牺牲系谣言代拍被何赛飞拿着魔杖追着打月嫂回应掌掴婴儿是在赶虫子山西高速一大巴发生事故 已致13死高中生被打伤下体休学 邯郸通报李梦为奥运任务婉拒WNBA邀请19岁小伙救下5人后溺亡 多方发声王树国3次鞠躬告别西交大师生单亲妈妈陷入热恋 14岁儿子报警315晚会后胖东来又人满为患了倪萍分享减重40斤方法王楚钦登顶三项第一今日春分两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?周杰伦一审败诉网易房客欠租失踪 房东直发愁男子持台球杆殴打2名女店员被抓男子被猫抓伤后确诊“猫抓病”“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火男孩8年未见母亲被告知被遗忘恒大被罚41.75亿到底怎么缴网友洛杉矶偶遇贾玲杨倩无缘巴黎奥运张立群任西安交通大学校长黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发妈妈回应孩子在校撞护栏坠楼考生莫言也上北大硕士复试名单了韩国首次吊销离岗医生执照奥巴马现身唐宁街 黑色着装引猜测沈阳一轿车冲入人行道致3死2伤阿根廷将发行1万与2万面值的纸币外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万手机成瘾是影响睡眠质量重要因素春分“立蛋”成功率更高?胖东来员工每周单休无小长假“开封王婆”爆火:促成四五十对专家建议不必谈骨泥色变浙江一高校内汽车冲撞行人 多人受伤许家印被限制高消费

聚圣源 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化