二分法(在有序数组里,是否存在某个数)

在有序数组里,是否存在某个数

复制代码
package practice01;

import java.util.Arrays;
//二分法(在有序数组里,是否存在某个数)
public class demo04 {
    public static boolean existNum(int[] sortedArr,int num){
        if (sortedArr.length==0||sortedArr==null){
            return false;
        }
        int l=0;    //左索引
        int r=sortedArr.length-1;    //右索引
        int mid=0;   //中点
        while (l<r){  //l~r至少有两个数时
            mid=((r-l)>>1)+l;  //(r+l)/2
            if (sortedArr[mid]==num){
                return true;
            }if (sortedArr[mid]>num){
                r=mid-1;
            }else {
                l=mid+1;
            }
        }
        return sortedArr[l]==num;  //当r=l剩下最后一个数的时候
    }

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

}
复制代码

 

posted @   狂忍日记  阅读(53)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· 单线程的Redis速度为什么快?
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码

阅读目录(Content)

此页目录为空

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