首页 > 编程语言 >【Java基础】数组中的常见算法:二分查找算法

【Java基础】数组中的常见算法:二分查找算法

时间:2022-08-23 19:24:18浏览次数:147  
标签:二分 arr Java 索引 int middle 算法

1.实现

二分查找算法要求数组必须是有序的。
把中间的值和要查询的值进行比较,相等则返回索引下标
arr[middle]>number,则让尾索引等于middle-1,
arr[middle]<number,则让开始索引等于middle+1。

        int[] arr = new int[]{-99,-54,-2,0,2,33,43,256,999};
        boolean isFlag = false;
        int number = 256;
        int start = 0;       //开始索引
        int end = arr.length-1;     //尾索引
        while (start<=end){
            int middle = (start+end)/2;
            if (arr[middle]==number){
                System.out.println("找到指定的元素,索引为:"+middle);
                isFlag = true;
                break;
            }else if (arr[middle]>number){
                end = middle -1;
            }else {
                start = middle+1;
            }
        }
        if (!isFlag){
            System.out.println("未找到指定的元素");
        }

标签:二分,arr,Java,索引,int,middle,算法
From: https://www.cnblogs.com/zhishu/p/16616537.html

相关文章

  • 2022“杭电杯”中国大学生算法设计超级联赛(10)
    比赛链接:https://vjudge.net/contest/511178C-WavyTree题意:长为\(n\)的序列,每一步操作可以让\(a_i\)变成\(a_j\),花费为\(\lverta_i-a_j\rvert\)。现在要......
  • 不等式视角下的策略梯度算法
    不等式视角下的策略梯度算法作者:Xingzhe.AI来自:行者AI引言强化学习(ReinforcementLearning,RL),也叫增强学习,是指一类从(与环境)交互中不断学习的问题以及解决这类问题的......
  • 因子分析与EM算法
    FactorAnalysis目录FactorAnalysisBackgroundMarginalandConditionalDistributionofGaussianFactorAnalysisModelBackgroundwhenm(numberofsamples)<n(......
  • JavaScript基础回顾知识点记录6-操作元素样式和事件对象(介绍基本使用)
    js中操作元素样式通过js修改元素内联样式(设置和读取的都是内联样式)获取当前元素显示的样式<html> <head> <metacharset="utf-8"> <title></title> </head> <......
  • Java: 为Word文档添加水印
    Java:为Word文档添加水印添加水印是文档操作中一个非常实用的功能,通过给文档添加指定文字或图片水印既可以标识文档的状态,也可以维护文档版权,丰富其外观。在这篇文章中,我......
  • 统计分析 -- 聚类算法模型
    统计分析--聚类算法模型距离分析数据标准化欧氏距离与量纲有关,因此,有时需要对数据进行预处理,如标准化等。在MATLAB中的命令是zscore,调用格式Z=zscore(X)输入X......
  • 十年老程序员:C、Python、Java 不可兼得,专心学好一门编程语言就行!
    序言哈喽兄弟萌,很多铁铁在刚开始学编程的时候,总是避免不了看到某些哗众取宠的博主发的视频或者文章,说建议同时学好几门语言,一尝试发现,同时学好几个编程语言确实没有压......
  • JavaScript之Object.assign()方法详解
    Object.assign()方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。语法:Object.assign(target,...sources)target:目标对象。sourc......
  • Java Servlet 入门:问题系列:java.lang.NoClassDefFoundError
    问题来源:java.lang.NoClassDefFoundError1、新建了一个java项目,定义一个类:  2、右键属性,Export,导出Jar包: 按  完成后。在另一个项目引用:运行结果  ......
  • java用括号拆分字符串
    我有一个遵循这种模式的String列表:'Namewithspace(field1_field2)CONST'我想提取:带空格的名称括号内的值括号后的CONST值对于括号中的字符串()我正在使用:\(.*......