二分查找法二有序数组查找大于等于某个数的最左位置

一、题目

给定一个有序数组,在这个数组中找到大于等于某个数的最左位置。如给定一个数组:
在这里插入图片描述
找到大于等于7的最左位置为4。

二、思路

2.1 暴力破解

当然,最简单,最不用动脑子的思路就是给数组循环一遍,找到第一个大于等于给定的数之后,直接给它返回出来即可。

2.2 二分查找

说了不动脑子的,那再看看动脑子的办法,二分查找怎么找。如下图:
在这里插入图片描述
从上图可以看出,这与二分查找某个值是否存在即有相同又有不同。相同之处都是采用了二分查找,即每一次丢掉一半不符合逻辑的数组。不同之处在于,查找某个值是否存在,找到了就立即返回,而查找大于等于某个数的最左位置,是一定会找到底,会把数组彻底二分完。

三、代码

public class Main
{
   
	public static void main (String[] args)
	{
   
		int[] sortedArr 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值