二分法(在有序数组里,找满足>=value的最左位置)

在有序数组里,找满足>=value的最左位置

复制代码
package practice01;

//二分法(在有序数组里,找满足>=value的最左位置)
public class demo05 {
    public static int nearestIndex(int[] sortedArr,int num){
        if (sortedArr.length==0||sortedArr==null){
            return 0;
        }
        int l=0;    //左索引
        int r=sortedArr.length-1;    //右索引
        int index=0;  //声明并初始化
        int mid=0;
        while (l<r){  //l~r至少有两个数时
            mid=((r-l)>>1)+l;  //(r+l)/2
            if (sortedArr[mid]>=num){
                index=mid;
                r=mid-1;
            }else {
                l=mid+1;
            }
        }
        return index;  //返回索引位置
    }

    public static void main(String[] args) {
        int[] sortedArr={1,2,2,2,3,4,4};
        int i = nearestIndex(sortedArr, 4);
        System.out.println(i);
    }

}
复制代码

 

posted @   狂忍日记  阅读(47)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
· Manus的开源复刻OpenManus初探

阅读目录(Content)

此页目录为空

点击右上角即可分享
微信分享提示