You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用二分查找定位数组中不存在元素的下界索引

升序数组中目标元素不存在时的二分查找下界获取方法

问题场景

当目标元素未出现在升序数组中时,可通过二分查找算法获取该元素的下界(lower bound)索引。

输入输出规则

  • 输入顺序:依次输入数组长度、待查找目标元素值
  • 示例输入:5 4
  • 对应测试数组元素:1 2 3 7 8
  • 示例输出:2,即目标元素对应的下界数组索引

参考实现代码

注意:初始化时左边界low设为0,右边界high设为数组长度减1,循环结束后即可得到目标索引值

while(low <= high){
    int mid = (high + low)/2;

    if(a[mid] < s){
        low = mid + 1;
    }  
    else if(a[mid] >= s){
        high = mid - 1;
    }
}

代码逻辑:每次取区间中间位置元素和目标值比较,如果中间元素小于目标值,说明目标位置在右半区间,将左边界移动到中间位置右侧;如果中间元素大于等于目标值,说明目标位置在左半区间,将右边界移动到中间位置左侧,区间收缩完成后即可得到结果。

测试用例参考

  • 测试用例1:
    测试用例1示意图
  • 测试用例2:
    测试用例2示意图

内容的提问来源于stack exchange,提问作者ProgrammerSK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 15:09:34