首页 > 编程语言 >基本算法之二分查找法折半查找(Java)

基本算法之二分查找法折半查找(Java)

时间:2023-02-28 21:12:40浏览次数:43  
标签:折半 arr Java target int mid 查找 public

前提条件:数组中的数据必须是有序的!

核心思想:每次排除一半的数据,查询数据的性能明显提高很多!

 

 

 

 

 

 

public class Task {

    public static void main(String[] args) {
        int[] arr = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71};

        int rst = binarySearch(arr, 31);

        System.out.println(rst);
    }

    // 二分查找算法
    public static int binarySearch(int[] arr, int target) {
        //声名两个指针【int 值】分别记录数组的起始索引和结束索引
        int left = 0;
        int right = arr.length-1;
        int index = 0;
        while (left <= right){
            //计算本次mid索引【中间值索引】,判断本次mid对应的原始值是否满足目标元素
            int mid = (left+right)/2;
            if (arr[mid] == target){
                return mid;
            }else if (arr[mid] > target){
                right = mid - 1;

            }else if (arr[mid] < target){
                left = mid + 1;
            }
        }
        return -1;
    }

 

标签:折半,arr,Java,target,int,mid,查找,public
From: https://www.cnblogs.com/yaomagician/p/17165980.html

相关文章

  • JAVAWEB学习-session-用session实现获取用户姓名
    继续学习session的有关知识,实现获取用户姓名session的作用是可以实现不同的页面保存共享同一个数据,在许多方面十分有用我们实现一个获取用户姓名的功能就用之前增删改......
  • JavaScript中单例模式这样用
    如果希望自己的代码更优雅、可维护性更高以及更简洁,往往离不开设计模式这一解决方案。在JS设计模式中,最核心的思想:封装变化(将变与不变分离,确保变化的部分灵活,不变的部分......
  • JAVAWEB学习-session-用session实现禁止用户非法访问页面
    今天学习了JAVAWEB中session的有关知识,能够实现禁止用户非法访问页面.session可以理解为一个表,每条数据有两个属性,String和Object,即名称和内容session的作用是可以实......
  • javascript之正则表达式验证email
    1<!DOCTYPEhtml>2<htmllang="en">34<head>5<metacharset="UTF-8">6<metahttp-equiv="X-UA-Compatible"content="IE=edge">7......
  • JavaSE——构造方法
    packagecom.zhao.test3;publicclassStudent{privateStringname;privateintage;//如果我们自己没有写任何的构造方法//那么虚拟机会给我们......
  • JavaSE——this关键字
    this修饰的变量用于指代成员变量,其主要作用是(区分局部变量和成员变量的重名问题)方法的形参如果与成员变量同名,不带this修饰的变量指的是形参,而不是成员变量方法的......
  • 通过java代码向mysql数据库插入记录,中文乱码处理
    处理步骤修改mysql配置文件,并重启mysql服务。mysql默认配置文件路径为/etc/my.cnf。修改配置如下:[mysqld]character-set-server=utf8[client]default-character-set......
  • JavaScript文件夹上传解决方案
    ​ 项目描述工具类包封装了一些关于分片md5验证、断点续传、分片上传、等方法前端样例使用百度插件WebUploader,插件的源码还是有一定的问题的分片上传是需要前后......
  • JAVA执行bat文件和shell脚本文件
    1。bat文件importjava.io.IOException;importjava.io.InputStream;publicclasscallbat{publicstaticvoidmain(Stringargs[]){callCmd("C:/r......
  • Java代码判断当前操作系统是Windows或Linux或MacOS
    在Java开发过程中,有时候需要根据操作系统的类型,来选择执行不同的脚本或加载不同的动态库,比如Window下的脚本是.bat文件,而Linux下的脚本是.sh文件,还有Windows下的......