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

二分查找(二分查找算法)

目录

一:题目链接

二:题目思路

三:代码实现


一:题目链接

二:题目思路

        首先,当数组有序时, 假如有数组 1  2   3   4    5   6   7  8   ,我们要找的数字是 3 ,除了暴力枚举的情况下,还有一种特别高效方法来解决。

        假如我们随便在数组取一个数,如果 当前 的数字小于我们要找的数字 3 ,那么当前的数字 的左边全部数字都是小于 3 的,就可以把 那一边的数字全部排除:

        如果 当前 的数字大于我们要找的数字 3 ,那么当前的数字 的右边全部数字都是大于 3 的,就可以把 那一边的数字全部排除:

        直到缩小到的区间取到等于 3 的数字时,返回当前下标。这就是二分查找算法。

        在此基础上,我们约定每次取的是数组中间的数字。

三:代码实现

        int left = 0;int right = nums.length - 1;while(left <= right) {//int mid = (left + right) / 2; 这种写法有溢出风险int mid = left + (right - left) / 2; // 改进if(nums[mid] < target) {left = mid + 1;}else if(nums[mid] > target) {right = mid - 1;}else {return mid;}}return -1;
http://www.dtcms.com/a/389839.html

相关文章:

  • 贪心算法应用:超图匹配问题详解
  • Hadoop3.3.5搭建指南(双NN版本)
  • 如何正确写Controller?参数校验、异常处理
  • 线性代数:LU与Cholesky分解
  • 饮用水在线监测设备:实时、精准地捕捉水体中的关键参数,为供水安全提供全方位保障
  • 【环境搭建】Conda安装教程
  • Java与机器学习的结合:库与应用!
  • DHCP基本原理及实验(ENSP配置)
  • 高系分十一:软件需求工程
  • MCP Server Chart AntV 项目解析
  • 2025药物市场调研分析案例(模板资源分享)
  • 飞网出口网关:安全便捷地访问受限资源
  • 大模型训练的三大显存优化策略
  • 动态加载js链接、异步传参加载组件、有趣打印
  • 【Python】Python异常、模块与包
  • 第三方网站系统测试:【基于Pytest的自动化测试框架的测试】
  • 每个 SIwave 求解器的正确激励
  • 给 C++ Protobuf“装上 Abseil”版本确认、Bazel/CMake 实战与避坑
  • Java 大视界 -- Java 大数据在智能物流运输车辆智能调度与路径优化中的技术实现
  • 电脑中的32位和64位
  • 如何免费使用AWS服务器?AWS Free Tier免费套餐申请与避坑指南
  • QML界面调用C++层阻塞函数,如何不卡界面
  • JVM GC 调优:GC 问题发现工具,五大 GC 异常模式,四大调优方案与案例实战
  • Excel处理控件Aspose.Cells教程:如何使用Python在Excel中创建下拉列表
  • React 18.2中使用Redux 5.0.1
  • 程序开发的基本规律
  • Day26_【深度学习(6)_神经网络NN(1.1)激活函数_softmax详解篇】
  • 通过调用deepseek大模型接口对千条评论信息进行文本分析/词频分析/情感分析
  • 攻坚家电代工转型痛点|远望电器牵手盘古信息,以IMS重塑数字制造根基
  • SpringBoot实现Markdown语法转HTML标签