首页 > 编程语言 >算法-二分查找

算法-二分查找

时间:2024-09-07 10:52:29浏览次数:4  
标签:二分 target nums mid 算法 查找 数组 指针

二分查找是在一个有序的数组中查找目标值target,需要将target和数组中间元素做比较:

1)如果target=mid,查找成功,返回mid的下标。

2)如果target > mid,目标在数组右半部分,low=mid+1

3)target < mid,目标在数组左半部分,high=mid-1

如下数组:

1、首先,指定数组的左指针和右指针,根据公式mid = left +(right - left)/ 2   = 0+(8-0)/2=4计算数组的中位值:

2、用target和数组对应的中位数组值nums[mid]作比较,如果target>nums[mid],需要移动左指针到mid+1的位置,如果target<nums[mid],需要移动右指针到mid-1的位置

3、指针移动后需要重新计算mid值,mid的计算方法和前面相同,继续用target和nums[mid]作比较,如果target>nums[mid],需要移动左指针到mid+1的位置,如果target<nums[mid],需要移动右指针到mid-1的位置

4、指针移动后,需要重新计算mid值,然后再用target和target>nums[mid]作比较,比较结果相同的,找到对应的target

标签:二分,target,nums,mid,算法,查找,数组,指针
From: https://blog.csdn.net/m0_66095096/article/details/141991872

相关文章

  • 传统CV算法——基于Opencv的图像绘制
    直线绘制参数解析:(图像矩阵,直线起始坐标,直线终止坐标、颜色、线条厚度)cv2.line()是OpenCV中用于绘制直线的函数。参数说明:img:要绘制直线的图像矩阵。(100,30):直线的起点坐标。(210,180):直线的终点坐标。color:直线的颜色,三个值分别表示蓝色、绿色和红色通道的强度。这里(......
  • 利用AI大语言模型和Langchain开发智能车算法训练知识库(上篇)
    今天小李哥将介绍亚马逊云科技的JupyterNotebook机器学习托管服务AmazonSageMaker上,通过AI大语言模型、向量知识库和LangChainAgent,创建用于AI智能车模型训练的RAG问答知识库。整个项目的架构图如下:本系列共分为上下两篇。在上篇内容中,我将分享该知识库的GitHub项目开源代......
  • 代码随想录算法训练营第五十天 | 98. 所有可达路径
    目录98.所有可达路径思路图的存储邻接矩阵         邻接表深度优先搜索1.确认递归函数,参数2.确认终止条件3.处理目前搜索节点出发的路径方法一:邻接矩阵写法方法二:邻接表写法98.所有可达路径题目链接:卡码网题目链接(ACM模式)文章讲解:代码随想录 ......
  • 最近邻回归算法原理及Python实践
    最近邻回归算法(K-nearestneighborsregression,简称KNN回归)是一种简单而又直观的非参数回归方法。它基于这样一个思想:一个样本的输出值可以通过其最近的K个邻居的输出值的某种形式(如加权平均)来预测。以下是KNN回归算法的主要原理:一、基本步骤计算距离:对于给定的预测样本......
  • 决策树回归算法原理及Python实践
    决策树回归算法(DecisionTreeRegression)是一种常用的机器学习算法,用于预测连续型变量的取值。其原理基于树结构对数据进行建模和预测,通过将数据集划分为不同的区域,并在每个区域内预测一个常数值来实现回归任务。以下是决策树回归算法原理的详细解释:一、基本原理树结构:......
  • 【数据结构和算法实践-位运算-找出数组中出现K次的数,其他数出现M次】
    位运算-找出数组中出现K次的数,其他数出现M次题目MyThought代码示例JAVA-8题目一个数组中,一个数出现了K次,另外其他的数出现了M次,找出出现K次的数MyThought一、设置一个长度为32的int[]temp,把arr中的每个数都变成2进制,放入temp中1、设置长度为32的int数组2......
  • 数据结构与算法 第10天(图的应用)
    一、最小生成树生成树:所有顶点均由边连接在一起,但不存在回路一个图可以有多颗不同的生成树 生成树特点:生成树的顶点个数与图的顶点个数相同;生成树是图的极小连通子图,去掉一条边则非连通,一个有n个顶点的连通图的生成树有n-1条边;在生成树中再加一条边必然形成回路,......
  • 828华为云征文|华为云Flexus X实例部署安装HivisionIDPhoto一个轻量级的AI证件照制作算
    背景最近有一个开源项目非常火,就是HivisionIDPhotos一个轻量级的AI证件照制作算法github仓库https://github.com/Zeyi-Lin/HivisionIDPhotos由于最近华为云最近正在举办B2B企业节,FlexusX实例的促销力度非常大。所以购买了一个FlexusX实例。4核12G。准备安装一个,试一......
  • 识别并应对动态归纳类算法题:深入剖析与实战指南
    《识别并应对动态归纳类算法题:深入剖析与实战指南》在编程的世界里,算法题犹如一座座充满挑战的山峰,等待着开发者们去攀登。其中,动态归纳类算法题因其复杂性和灵活性,常常成为开发者们进阶路上的一道难关。本文将深入探讨如何识别并应对动态归纳类算法题,为大家提供一份全面的......
  • 72. 编辑距离算法实现详解
    LeetCode72.编辑距离详解一、题目描述给你两个单词word1和word2,请返回将word1转换成word2所使用的最少操作数。你可以对一个单词进行如下三种操作:插入一个字符。删除一个字符。替换一个字符。示例1:输入:word1="horse",word2="ros"输出:3解释:horse......