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

二分查找理解

二分查找的关键在于循环不变量(就是在while循环过程中不变的一些规定)

我的循环不变量:
1.区间开闭,我选择左闭右闭
2.循环结束条件:当前区间内没有元素
3.下一次二分查找区间:不能包含已经查找过的元素
4.返回值:大于等于target的第一个下标

有序数组中二分查找的四种类型(下面的转换仅适用于数组中都是整数)

  1. 第一个大于等于x的下标: low_bound(x)
  2. 第一个大于x的下标:可以转换为第一个大于等于 x+1 的下标 ,low_bound(x+1)
  3. 最后一个小于x的下标:可以转换为第一个大于等于 x 的下标左边位置, low_bound(x) - 1;
  4. 最后一个小于等于x的下标:可以转换为第一个大于等于 x+1 的下标左边位置, low_bound(x+1) - 1;

FQA:
1.如何理解最后一个小于x的下标等价于第一个大于等于 x 的下标的左边位置

假设index为最后一个小于x的下标,array[index]<x,因为它是最后一个小于x,所以array[index+1]>=x
这就转换成了情况1了,最后我们将求出的坐标减去1就是index了

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 喜讯!30篇论文完成知网(CNKI)检索,历时不到2个月
  • Baumer工业相机堡盟工业相机如何通过NEOAPI SDK使用HDR功能(Python)
  • Win/Linux/Mac 安装Python 3.6
  • Leetcode 476. Number Complement
  • OCR文字识别接口如何用PHP进行调用
  • 【计算机三级-数据库技术】数据库及数据库对象
  • 运营商三要素-手机三要素-运营商三要素验证-运营商实名认证-手机三要素实名校验核验接口API
  • 使用IO流复制文件夹
  • 关于武汉芯景科技有限公司的RS232通信接口芯片XJ3243EEUI开发指南(兼容MAX3243EEUI)
  • 不用再找了,国内无限制使用GPT 4o的方法【2024年9月 亲测好用】
  • AT372-6P单频高精度定位模块功能解读
  • 用Python探索排序算法:冒泡排序的实现与优化
  • NSSCTF练习记录:[SWPUCTF 2021 新生赛]crypto10
  • 精益思维赋能机器人行业的三大维度
  • LLM大模型GPT4o
  • canvas实际项目操作,包含:线条,圆形,扇形,图片绘制,图片圆角遮罩,矩形,弧形文字...
  • const let
  • ES6简单总结(搭配简单的讲解和小案例)
  • Intervention/image 图片处理扩展包的安装和使用
  • javascript 总结(常用工具类的封装)
  • spring boot下thymeleaf全局静态变量配置
  • vuex 笔记整理
  • Vue实战(四)登录/注册页的实现
  • 程序员最讨厌的9句话,你可有补充?
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 从零开始在ubuntu上搭建node开发环境
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 每天一个设计模式之命令模式
  • 爬虫模拟登陆 SegmentFault
  • 我有几个粽子,和一个故事
  • 由插件封装引出的一丢丢思考
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • ​linux启动进程的方式
  • ​软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】​
  • ​用户画像从0到100的构建思路
  • !!Dom4j 学习笔记
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • $(this) 和 this 关键字在 jQuery 中有何不同?
  • (Java企业 / 公司项目)点赞业务系统设计-批量查询点赞状态(二)
  • (八)c52学习之旅-中断实验
  • (篇九)MySQL常用内置函数
  • (七)glDrawArry绘制
  • (十七)Flask之大型项目目录结构示例【二扣蓝图】
  • (四)opengl函数加载和错误处理
  • (万字长文)Spring的核心知识尽揽其中
  • (转载)虚幻引擎3--【UnrealScript教程】章节一:20.location和rotation
  • (轉貼) 資訊相關科系畢業的學生,未來會是什麼樣子?(Misc)
  • .NET 5种线程安全集合
  • .NET Core WebAPI中使用Log4net 日志级别分类并记录到数据库
  • .NET 中使用 Mutex 进行跨越进程边界的同步
  • .NET轻量级ORM组件Dapper葵花宝典
  • [ C++ ] 类和对象( 下 )
  • [2669]2-2 Time类的定义
  • [ai笔记4] 将AI工具场景化,应用于生活和工作
  • [Angular] 笔记 9:list/detail 页面以及@Output