首页 > 编程语言 >算法与数据结构——二分查找

算法与数据结构——二分查找

时间:2024-09-12 09:51:36浏览次数:9  
标签:二分 target nums int 查找 区间 数据结构

二分查找

二分查找(binary search)是一种基于分治策略的高效搜索算法。它利用数据的有序性,每轮缩小一半搜索范围,直至找到目标元素或搜索区间为空为止。

Qustion
给定一个长度为n的数组nums,元素按从小到大的顺序排列且不重复。请查找并返回元素target在该数组中的索引。若数组不包含该元素,则返回 -1。

我们先初始化指针i = 0j = n - 1,分别指向数组首元素和尾元素,代表搜索区间`[0, n-1]。(中括号表示闭区间,包含边界值。)

接下来,循环执行以下步骤:

相关文章

  • python根据关键字查找文件所在路径位置
    importosimportfnmatchdeffind_files(directory,keyword):"""在给定目录及其子目录中查找包含关键词的文件"""forroot,dirs,filesinos.walk(directory):forbasenameinfiles:ifkeywordinbasename:......
  • 二分
    二分答案要对一个有单调性的区间二分查找:|可行||不可行|,即某个点的一个方向全可行,另一个方向全不可行,要找这个点。(大部分时候求谁就二分谁,但也有例外,例外:http://noip.ybtoj.com.cn/contest/868/problem/8)更概括的,一段区间被一个点分成两种状态或特性经典题型最大值最小/最小......
  • 56.《数据结构-线性表白话看》
    知识参考王道考研硬看知识和视频一直瞌睡无聊破了两天题才寻得规律故在此记录分为顺序存储和链式存储线性表的定义:具有相同数据类型的n个数据元素的有限序列注意相同数据类型有限序列还有就是线性表是一种逻辑结构顺序表和链表是存储(物理)结构1.顺序存储即顺序表......
  • 数据结构:线性表的顺序表实现
    顺序表的操作:这里采用了结构体和指针的部分知识//自定义结构体typedefstruct{ DataTypelist[Maxsize]; intsize;}SeqList;voidListInitiate(SeqList*L){ L->size=0;}intListLength(SeqListL){ returnL.size;}//插入是从前往后移动intListInsert(Seq......
  • LeetCode 704.二分查找 (java)
    给定一个 n 个元素有序的(升序)整型数组 nums和一个目标值 target ,写一个函数搜索 nums 中的target,如果目标值存在返回下标,否则返回-1。示例1:输入:nums=[-1,0,3,5,9,12],target=9输出:4解释:9出现在nums中并且下标为4示例 2:......
  • 算法与数据结构——图的基础操作及图的遍历(广度优先与深度优先)
    图的实现基于邻接矩阵的实现给定一个顶点数量为n的无向图:初始化:传入n个顶点,初始化长度为n的顶点列表vertices,使用O(n)时间;初始化n*n大小的邻接矩阵adjMat,使用O(n2)时间。添加或删除边:直接在邻接矩阵中修改指定的边即可,使用O(1)时间。而由于是无向图,因此需要同时更新两个......
  • OpenCV结构分析与形状描述符(19)查找二维点集的最小面积外接旋转矩形函数minAreaRect()
    操作系统:ubuntu22.04OpenCV版本:OpenCV4.9IDE:VisualStudioCode编程语言:C++11算法描述找到一个包围输入的二维点集的最小面积旋转矩形。该函数计算并返回指定点集的最小面积边界矩形(可能是旋转的)。开发者需要注意的是,当数据接近包含的Mat元素边界时,返回的Rotated......
  • 江西省毕业生如何查找档案存放地址
    江西省毕业生如何查找档案存放地址  毕业之后,学校不再保存个人的档案,要寄出去。政府机关、事业单位和国有企业有人事档案接收权,找到这些工作的同学,档案会寄到工作单位。而去私企、外企或者暂时不打算就业的同学,档案会寄到生源地,也就是户口所在地的人力资源局或人才市场。  ......
  • VSCode 常用快捷键总结:涵盖编辑器操作、文件管理、查找替换、代码格式化、调试、视图
    编辑器操作光标与选择Ctrl+D:匹配当前选中的词汇或行,再次选中可操作。Alt+Click:在多个位置插入光标。Ctrl+Alt+↑/↓:在上下行插入光标。Shift+Alt+I:在选中范围内所有行结束符插入光标。Shift+Alt+(dragmouse):鼠标拖动区域,同时在多个行结束符插入光标。Ct......
  • 可持久化数据结构
    可持久化线段树看这个。可持久化字典树最大异或和考虑设\(s\)为\(a\)的前缀异或和数组,我们最终的答案就是找一个\(p\in[l-1,r-1]\),然后求出\(s_n\operatorname{xor}x\operatorname{xor}s_p\)。首先,对于最大异或数对问题,可以使用\(01\)\(trie\)解决,这里不再赘述。......