当前位置: 首页 > news >正文

二分查找及其变种

二分查找实际上就是不断变化 mid 指针的一个查找方法:再一个已经拍好序的数组中,我们可以选区中间的值,然后和目标相比较,然后不断缩小范围,最后找到 目标:
普通版(只需要找到)的:(设要在数组(列表) a[1,2,3,3,3,3,4,5,6,7,8,9,10,11] 中找到 目标 target:3)
伪代码如下:

分解执行动作,将low赋值为0,high指向length - 1,mid赋值为int((high + low)/2)

将 a[mid] 和 target 比较,若大于target,则需要降低 a[mid] 的 值,所以要将 large 减小,使large = mid - 1;若小于target,则需要增加 a[mid] 的 值,所以要将 low 增加,使low = mid + 1; 若等于target,则表示以找到,则返回 index;
如果在循环结束后仍未找到,则返回 False 表示该队列中没有该值。


复杂版,需要制定找到在该数组中第一个 等于 目标值的数:


因为要找的是第一个,所以肯定不能 mid 一等于 target 就返回,而是要,策略也要改变,但等于的时候应该将 high 降低。





这时候我们返回low就可以的到第一个等于target的参数了
如果要的到最后一个呢,我们需要在等于target 的时候将low = mid + 1;然后结束循环后 high 就是他的答案了:




http://www.jsqmd.com/news/1281547/

相关文章:

  • 关于Java项目中Log4j的使用方法
  • 2026年赣州精装房改造商家盘点 赣州家豪装饰服务优势及挑选指南 - 品牌推荐达人
  • S7-200Smart PLC恒压供水系统设计与实现
  • openCV编程基础12--模板匹配
  • 2026 曲靖闲置黄金如何安全变现麒麟经开区 6 家黄金回收门店口碑一览 - 不晚生活号
  • Java加密升级实战:从AES/ECB到GCM模式,彻底解决安全漏洞
  • 提示词工程实战指南:从核心原理到AI高效协作的六步法
  • 字母异位词检测算法与优化实践
  • 2026 年 7 月常德黄金回收靠谱推荐|旧黄金变现、金条铂金回收、同城上门回收攻略 - 城刊速递
  • Python基本环境配置
  • 178、ISP Pipeline深度解析:RAW域黑电平校正与坏点校正的鲁棒性优化
  • springcloud聚合项目简单搭建流程
  • 全栈开发者效率提升的十个反直觉认知:慢下来才能快起来的工程真理
  • .NET技术栈构建吉他音乐社区实战解析
  • 陪诊行业兴起的背后:我们对陪诊服务的误解,该解开了 - 品牌排行榜单
  • MATLAB 中如何使用 import
  • 2026新版宣城防水补漏服务商参考|阳台渗漏修缮方案指南 - 筑宅安
  • 【JAVA毕业设计】 基于 B/S 架构的大学生学习成果汇总展示系统数字化高校学生竞赛成果申报展示管理平台(源码+文档+远程调试,全bao定制等)
  • 底层、推理、联想思维之应用(使用map reduce实现大规模kmeans聚类)
  • 力扣刷题记录#数组#简单#1122数组的相对排序
  • G-Helper终极指南:3步轻松掌控华硕笔记本性能与散热
  • Data-Juicer:面向基础模型时代的数据操作系统架构与实践
  • 2026新版丽水防水补漏服务商参考|阳台渗漏修缮方案指南 - 筑宅安
  • 食品清洗风干设备可视化管理平台方案
  • 2026葫芦岛本地人必选防水补漏检测维修公司靠谱服务商TOP5推荐 - 吉林同城获客
  • 小白程序员必看!收藏这份 Agentic RL 学习指南,带你轻松入门大模型决策策略
  • 华为OD机试真题解析:字符串压缩解压算法与多语言实现
  • Android studio CodeGlance 右侧预览功能消失
  • 2026甄选:日式搬家领域值得信赖的专业服务公司 - 卓企推荐
  • SpringBoot+Vue校友网平台全栈开发实践