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

二分查找。。

1 二分查找

二分查找前提是数组有序。
  1. 先令,left = 0 , right = 7
  2. mid = (right + left) / 2;如果mid的值大于要查找的值,则right = mid - 1;如果小于,left = mid + 1;如果mid的值等于要查找的值,查找成功。
  3. 重复步骤2,直到查找成功或者 left > right。
上面和下面的三个式子,分别为循环的条件,left和right的变化规则。这三套式子,是正确的可查找的式子。其他式子可能查找不到。
left<=right
left=mid+1
right=mid-1
left<right
left=mid+1
right=mid
package com.qcby.查找;public class Binary_Search {public static void main(String[] args) {int[] arr= {2,15,50,67,80,99};System.out.println(search(arr,67));}public static int search(int[] arr,int value) {int left=0;int right=arr.length-1;while(left<=right) {int mid=(left+right)/2;if(arr[mid]==value) {return mid;}else if(arr[mid]<value) {left=mid+1;}else {right=mid-1;}}return -1;}
}

时间复杂度:O(logn)。具体求法见时间复杂度1.2.4。

http://www.lryc.cn/news/622597.html

相关文章:

  • 抽象代数 · 代数结构 | 群、环、域、向量空间
  • Windows MCP.Net:基于.NET的Windows桌面自动化MCP服务器深度解析
  • MixOne:Electron Remote模块的现代化继任者
  • 安卓11 12系统修改定制化_____列举与安卓 9、10 系统在定制化方面的差异与权限不同
  • MQ积压如何处理
  • 安全审计-iptales防火墙设置
  • HTTP协议-1-认识各个HTTP协议版本的主要特点
  • bilibili视频总结
  • 在openEuler24.03 LTS上高效部署Apache2服务的完整指南
  • 拒绝造轮子(C#篇)使用SqlSugar实现数据库的访问
  • 【QT】常⽤控件详解(八) Qt窗⼝ 菜单栏 工具栏 状态栏 浮动窗口 五种内置对话框
  • c# WebAssembly,在网页上能运行多线程,异步,锁,原子加,减等代码吗
  • C# 反射和特性(关于应用特性的更多内容)
  • 【C#补全计划】Lambda表达式
  • C++面试题及详细答案100道( 31-40 )
  • HackMyVM-Uvalde
  • AI生成视频开源模型技术解析
  • uv - 基本使用
  • JavaScript学习第十章-第三部分(dom)
  • 【P40 6-3】OpenCV Python——图像融合(两张相同属性的图片按比例叠加),addWeighted()
  • 视觉语言模型(VLA)分类方法体系
  • GitHub 热榜项目 - 日榜(2025-08-16)
  • DeepSeek-R1-深度解析-通过强化学习激励大语言模型的推理能力
  • 高并发场景下如何避免重复支付
  • 【Nginx指南】从核心原理到生产实践
  • AI智能体实战开发课程介绍
  • ARC与eARC是什么?主要用在哪?
  • implement copy file content to clipboard on Windows
  • OpenCV 图像处理基础操作指南(二)
  • sqli-labs通关笔记-第52关 GET数值型order by堆叠注入(手工注入+脚本注入两种方法)