二分查找的几种情况汇总

本文详细梳理了二分查找的七种典型应用,包括查找目标位置、查找大于或等于目标的位置、查找大于目标的位置、查找小于或等于目标的位置、查找小于目标的位置、查找等于目标的第一个位置和最后一个位置。文章强调所有情况均假设数组已按升序排列,并在闭区间内进行查找。
摘要由CSDN通过智能技术生成

        在学习算法和刷leetcode的过程中,二分查找是一种非常常见的算法。功能方面,它将查找的复杂度从o(n)降成了o(lgn)。使得查找效率大大提高。在leetcode中,有诸多关于二分查找的变体。因此,掌握好二分查找是非常有必要的。但是,在实际学习过程中,对于二分可能出现的各种情况,我查阅了很多博客和文章,大家给出的代码不统一,也大多没有给出详细的解释。所以,有一段时间,二分算法的几种情况在我脑中乱糟糟的。今天终于花了一些时间把这些情况理清楚了。所以将这几种情况写在这里,以便复习。

        二分查找的主要情况分成7中情况:

        1. 查找对应target位置(返回对应位置,没找到则返回-1)

        2. 查找第一个大于或等于target的位置(返回对应位置,没找到则返回-1)

        3. 查找第一个大于target的位置(返回对应位置,没找到则返回-1)

        4. 查找最后一个小于等于target的位置(返回对应位置,没找到则返回-1)

        5. 查找最后一个小于target的位置(返回对应位置,没找到则返回-1)

        6. 查找第一个等于target的位置(返回对应位置,没找到则返回-1)

        7. 查找最后一个等于target的位置(返回对应位置,没找到则返回-1)

 

        另外,本文中都是在数组的闭区间内进行查找,而且默认数组已经是增序排列。

        

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值