一、二分法查找

1.二分法查找是建立在已经排序的基础之上的

2.程序分析是从下到大​排序。

3.这个数组中没有重复的元素​。


package com.bjpowernode.java_learning;

​

public class D71_1_ {

  public static void main(String[] args) {

    int[] a1 = {1,5,8,9,11,25,45,55};

    int destElement = 29;

    int index = binarySearch(a1,destElement);

​

    System.out.println((index==-1)?destElement + "元素不存在!":destElement + "在数组中的下标是:" + index);

  }

  public static int binarySearch(int[] a2 ,int destElement) {

    int begin = 0;

    int end = a2.length-1;

​

    while (begin<=end) {

      int mid = (begin+end)/2;

      if(a2[mid] == destElement) {

        return mid;

      }else if(a2[mid] >destElement) {

        end = mid -1;

      }else {

        begin = mid +1;

      }

    }

    return -1;

  }

}

二、Arrays工具类

Arrays是SUN公司提供的一个工具类

java.utils.Arrays;

该工具类主要针对的是数组的操作​,例如:排序、二分查找​。对应函数为Arrays.sort;Arrays.binarySearch;

package com.bjpowernode.java_learning;

import java.util.Arrays;

public class D71_2_ArraysToolsClass {

  public static void main(String[] args) {

    int [] a1 = {45,7,5,9,21,25,98};

    Arrays.sort(a1);

    for (int i= 0;i<a1.length;i++) {

      System.out.println(a1[i]);

    }

    System.out.println("==================");

    int index = Arrays.binarySearch(a1,98);

    System.out.println(index);

  }

}

三、源码:

D71_1_BinarySearch.java

D71_2_ArraysToolsClass.java

https://github.com/ruigege66/Java/blob/master/D71_1_BinarySearch.java

https://github.com/ruigege66/Java/blob/masterD71_2_ArraysToolsClass

2.CSDN:https://blog.csdn.net/weixin_44630050

3.博客园:https://www.cnblogs.com/ruigege0000/

4.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料

Java连载71-二分查找和Arrays工具类的更多相关文章

  1. Java基础知识强化62:Arrays工具类之概述和使用

    1. Arrays工具类: Arrays这个类包含操作数组(比如排序和查找)的各种方法. 2. Arrays的方法: (1)toString方法:把数组转成字符串 public static Stri ...

  2. Java基础知识强化63:Arrays工具类之方法源码解析

    1. Arrays工具类的sort方法: public static void sort(int[] a): 底层是快速排序,知道就可以了,用空看. 2. Arrays工具类的toString方法底层 ...

  3. Java集合框架:Arrays工具类

    java.util.Arrays类能方便地操作数组,它提供的方法都是静态的.整个Arrays工具类的实现有3000+行.可是归纳总结一下可知它有下面功能(9个): 1. asList 定义: @Saf ...

  4. java 13-2 Arrays工具类

    1.Arrays:针对数组进行操作的工具类.比如说排序和查找. 1:public static String toString(int[] a) 把数组转成字符串  2:public static v ...

  5. Java学习之二分查找算法

    好久没写算法了.只记得递归方法..结果测试下爆栈了. 思路就是取范围的中间点,判断是不是要找的值,是就输出,不是就与范围的两个临界值比较大小,不断更新临界值直到找到为止,给定的集合一定是有序的. 自己 ...

  6. Java精选笔记_集合概述(Collection接口、Collections工具类、Arrays工具类)

    集合概述 集合有时又称为容器,简单地说,它是一个对象,能将具有相同性质的多个元素汇聚成一个整体.集合被用于存储.获取.操纵和传输聚合的数据. 使用集合的技巧 看到Array就是数组结构,有角标,查询速 ...

  7. java数据结构1--数组、排序和Arrays工具类

    数组:Array 数组的定义 数组的内存结构 数组定义常见问题 数组常见操作 Java参数传递问题--值传递 二维数组 1.数组概念 同一种类型数据的集合,可以是基本数据类型,也可以是引用数据类型. ...

  8. java 基础 ----- Arrays 工具类

    -----  Arrays  工具类是一个比较方便的类 常用的方法 也可以通过jdk文档进行查看    右侧有偶 对一些比较常用的方法进行演示   直接放在main方法中进行测试 ----   equ ...

  9. Java:集合,Arrays工具类用法

    1. 描述 Arrays工具类提供了针对数组(Array)的一些操作,比如排序.搜索.将数组(Array)转换列表(List)等等,都为静态(static)方法: binarySearch - 使用二 ...

随机推荐

  1. Ubuntu上安装tftp服务

    1. 安装 sudo apt install tftpd-hpa 2.设置工作目录 mkdir ~/tftpdroot tftpdroot 3.修改配置文件 sudo vi /etc/default/ ...

  2. hibernate保存失败

    报错:org.hibernate.jdbc.BdatchedTooManyRowsAffectedException: Batch update returned unexpected row cou ...

  3. linux之 文本编辑 的基础知识点

    第一步 打开终端 创建文件命令 touch 文件名.后缀名 打开文件命令 vi 文件名.后缀名 (此时进去txt文件之后为一般模式,你无法对文件进行增删改) 之后按 i    或 a    或o  都 ...

  4. Java中的super关键字和this关键字作用介绍

    一.super关键字的作用 1.子类在构造方法中显示调用父类构造方法 super可以在子类的构造方法中显示调用父类的构造方法:并且这行代码必须出现在子类构造方法的第一行.原因:因为父类构造方法没有执行 ...

  5. vue-cli 官方脚手架 eslink配置 恢复serve状态下的打印

    使用官方脚手架 打印会提示保存,主要是eslink的配置(在package.json文件夹里面修改) 配置说明 下面是抄的 "eslintConfig": { "root ...

  6. 【Python】【Django】登录用户-链接Mysql

  7. 【剑指Offer】面试题11. 旋转数组的最小数字

    题目 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素.例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个 ...

  8. MFC 屏蔽esc跟enter键

    BOOL CMenuOperate::PreTranslateMessage(MSG* pMsg) { if(pMsg->message == WM_KEYDOWN && pMs ...

  9. 后端使用aes 加密

    package com.util; /* import com.sun.org.apache.xerces.internal.impl.dv.util.Base64;*/ import org.apa ...

  10. /Array.CreateInstance创建类型为int,长度为5的数组

    using System;using System.Collections.Generic;using System.Linq;using System.Text; namespace Console ...