当前位置: 首页 > 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.xdnf.cn/news/1312021.html

相关文章:

  • 智能合约:区块链时代的“数字契约革命”
  • AutoDL使用学习
  • 【Java web】Servlet 详解
  • CUDA 编程笔记:CUDA延迟隐藏
  • [优选算法专题二滑动窗口——最大连续1的个数 III]
  • huggingface TRL中是怎么获取参考模型的输出的
  • Swift 实战:实现一个简化版的 Twitter(LeetCode 355)
  • 新手向:GitCode疑难问题诊疗
  • Java 10 新特性及具体应用
  • 嵌入式硬件篇---电感串并联
  • 2^{-53} 单位舍入误差、机器精度、舍入的最大相对误差界限
  • 实例分割-动手学计算机视觉13
  • docker安装mongodb及java连接实战
  • Effective C++ 条款45:运用成员函数模板接受所有兼容类型
  • Linux怎么查看服务器开放和启用的端口
  • 【原理】C# 字段、属性对比及其底层实现
  • illustrator插件大全 免费插件介绍 Ai设计插件集合 (3)
  • Python语言一键整理xhs评论 基于github的开源项目 MediaCrawler
  • Linux进程概念(四)环境地址变量
  • 同创物流学习记录2·电车
  • 链式二叉树的基本操作——遍历
  • 实时计算 记录
  • 美国服务器环境下Windows容器工作负载基于指标的自动扩缩
  • 从盲区到全域:黎阳之光视频孪生+AI智能算法驱动智慧机场三维感知革命
  • 4.6 Vue 3 中的模板引用 (Template Refs)
  • CSS复习
  • Jenkins安装部署(Win11)和常见配置镜像加速
  • SysTick寄存器(嘀嗒定时器实现延时)
  • 要导入StandardScaler类进行数据标准化,请使用以下语句:
  • VS Code配置MinGW64编译ALGLIB库