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

【算法】二分查找(一)朴素二分

目录

一、题目介绍

二、朴素二分

1.原理

二段性

时间复杂度(logn)

2.模板

四、提交代码


一、题目介绍

704. 二分查找 - 力扣(LeetCode)

给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target  ,写一个函数搜索 nums 中的 target,如果 target 存在返回下标,否则返回 -1

你必须编写一个具有 O(log n) 时间复杂度的算法。


示例 1:

输入: nums = [-1,0,3,5,9,12], target = 9
输出: 4
解释: 9 出现在 nums 中并且下标为 4

示例 2:

输入: nums = [-1,0,3,5,9,12], target = 2
输出: -1
解释: 2 不存在 nums 中因此返回 -1

提示:

  1. 你可以假设 nums 中的所有元素是不重复的。
  2. n 将在 [1, 10000]之间。
  3. nums 的每个元素都将在 [-9999, 9999]之间。

二、朴素二分

1.原理

二段性

二段性 一次算可排一边 每次中间 固定算排二分之一

  • 暴力 是 纯用算来排,一次算 就只排此个
  • 优化 是 增有判来排,一次算 有额外多个

时间复杂度(logn)

算x次 未算排 最差直到最后剩1个后算排完


2.模板

int left = 0, right = nums.length - 1;

while(left <= right)

       int mid = left + (right + left) / 2;

       if(二段性排掉左边) left = mid + 1;  

       else if(二段性排掉右边) right = mid - 1;

       else return;

}


四、提交代码

public int search(int[] nums, int target) {int left = 0, right = nums.length - 1;while(left <= right) {//int mid = (left + right) / 2; 如果两个大数相加 就会和溢出算数范围,所以相加时得一方是确保小数int mid = left + (right - left) / 2; // 一方小数求中点(算术和为mid 比right小 都没有溢出)if(nums[mid] > target) right = mid - 1;else if(nums[mid] < target) left = mid + 1;else return mid;}return -1;
}

http://www.dtcms.com/a/452776.html

相关文章:

  • 干货>肉夹馍词嵌入方案(embedding方案),适合资源受限、要求可解释、领域边界清晰的应用场景
  • PDML 不能和rebuild partition index同时运行
  • 网站目录管理模板做一个网站一般要多少钱
  • 对于力扣2025,10,7的每日的一点反思(非递归并查集写法)
  • Elasticsearch、OpenSearch 与 Easysearch:三代搜索引擎的演化与抉择
  • 以人为本视角下定制开发开源AI智能名片S2B2C商城小程序的营销价值与实践路径
  • AI智能体(Agent)大模型入门【5】--本地AI模型连接到PyCharm或者编译软件使用
  • INT305 Machine Learning 机器学习 Pt.3二元分类和多类分类
  • 拨付网站建设经费的请示防查水表 wordpress 评论
  • 从零开始学Flink:实时流处理实战
  • mysql全量+增量备份脚本及计划任务配置
  • 做微信商城网站哪家好权威网站建设公司
  • 湛江市微信网站建设企业药品行业做网站
  • 2024- Chrome 插件开发指南和实践
  • Apache Iceberg介绍、原理与性能优化
  • winlogon!StateMachineRun函数会用到核心数据结构winlogon中的重要全局状态机状态数组
  • 手机网站开发专业什么网站做二手货车
  • 做音乐网站代码wordpress app 读者
  • 高端品牌网站建设费用网站建设的建议和意见
  • 电子商务网站的建设 论文wordpress导入大小.h
  • 化工销售怎么做网站免费空间如何放网站
  • 网站开发与规划就业前景wordpress主题设置选择
  • 怎么做网站文章伪原创重庆专业做网站
  • 网站建设维护工作经验北京网站建站模板
  • 亚马逊企业网站建设门户网站开发流程
  • 图文网站模版高端网站服务范围
  • 天水市秦州区作风建设年网站青岛推广信息
  • 自己搭建网站下列哪个不是常用的网页制作工具
  • 论述网站开发建设的一般流程亳州网站制作公司
  • asp企业网站模板wordpress getthememod