当前位置: 首页 > 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.dtcms.com/a/334783.html

相关文章:

  • 【大语言模型 02】多头注意力深度剖析:为什么需要多个头
  • Python 类元编程(元类的特殊方法 __prepare__)
  • nflsoi 8.16 题解
  • 【数据结构】-2- 泛型
  • Python - 100天从新手到大师:第十一天常用数据结构之字符串
  • Java实现汉诺塔问题
  • AI Agents 2025年十大战略科技趋势
  • 【嵌入式C语言】六
  • .net印刷线路板进销存PCB材料ERP财务软件库存贸易生产企业管理系统
  • mit6.824 2024spring Lab1 MapReduce
  • 衡石使用指南嵌入式场景实践之仪表盘嵌入
  • 3 统一建模语言(UML)(上)
  • 力扣 hot100 Day75
  • 动手学深度学习(pytorch版):第三章节—线性神经网络(6) softmax回归的从零开始实现
  • 基于深度学习的老照片修复系统
  • 嵌入式硬件篇---电源电路
  • SpringBoot自动配置原理(二)
  • 智能客服、AI工作流、语音、聊天模板
  • MySQL的下载安装(MSI和ZIP版本都有)
  • 【Kubernetes系列】Kubernetes 中 Pod 层参数与 Deployment 层 Env 参数的区别与级别分析
  • WSL中占用磁盘空间大问题解决
  • 自适应阈值二值化参数详解 ,计算机视觉,图片处理 邻域大小 调整常数(C=3)和可视化调节参数的应用程序
  • 区块链技术原理(14)-以太坊数据结构
  • ubuntu更新chrome版本
  • 我的世界Java版1.21.4的Fabric模组开发教程(十九)自定义生物群系
  • 力扣(LeetCode) ——622. 设计循环队列(C语言)
  • 《C语言程序设计》笔记p10
  • 如何拿捏unittest自动化测试框架?
  • 代码随想录算法训练营四十三天|图论part01
  • 同创物流学习记录2·电车