Java连载71-二分查找和Arrays工具类
一、二分法查找
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工具类的更多相关文章
- Java基础知识强化62:Arrays工具类之概述和使用
1. Arrays工具类: Arrays这个类包含操作数组(比如排序和查找)的各种方法. 2. Arrays的方法: (1)toString方法:把数组转成字符串 public static Stri ...
- Java基础知识强化63:Arrays工具类之方法源码解析
1. Arrays工具类的sort方法: public static void sort(int[] a): 底层是快速排序,知道就可以了,用空看. 2. Arrays工具类的toString方法底层 ...
- Java集合框架:Arrays工具类
java.util.Arrays类能方便地操作数组,它提供的方法都是静态的.整个Arrays工具类的实现有3000+行.可是归纳总结一下可知它有下面功能(9个): 1. asList 定义: @Saf ...
- java 13-2 Arrays工具类
1.Arrays:针对数组进行操作的工具类.比如说排序和查找. 1:public static String toString(int[] a) 把数组转成字符串 2:public static v ...
- Java学习之二分查找算法
好久没写算法了.只记得递归方法..结果测试下爆栈了. 思路就是取范围的中间点,判断是不是要找的值,是就输出,不是就与范围的两个临界值比较大小,不断更新临界值直到找到为止,给定的集合一定是有序的. 自己 ...
- Java精选笔记_集合概述(Collection接口、Collections工具类、Arrays工具类)
集合概述 集合有时又称为容器,简单地说,它是一个对象,能将具有相同性质的多个元素汇聚成一个整体.集合被用于存储.获取.操纵和传输聚合的数据. 使用集合的技巧 看到Array就是数组结构,有角标,查询速 ...
- java数据结构1--数组、排序和Arrays工具类
数组:Array 数组的定义 数组的内存结构 数组定义常见问题 数组常见操作 Java参数传递问题--值传递 二维数组 1.数组概念 同一种类型数据的集合,可以是基本数据类型,也可以是引用数据类型. ...
- java 基础 ----- Arrays 工具类
----- Arrays 工具类是一个比较方便的类 常用的方法 也可以通过jdk文档进行查看 右侧有偶 对一些比较常用的方法进行演示 直接放在main方法中进行测试 ---- equ ...
- Java:集合,Arrays工具类用法
1. 描述 Arrays工具类提供了针对数组(Array)的一些操作,比如排序.搜索.将数组(Array)转换列表(List)等等,都为静态(static)方法: binarySearch - 使用二 ...
随机推荐
- CentOS7 静默安装Oracle XE 11g
Oracle XE简介 Oracle Database 11g 快捷版 (Oracle Database XE) 是一款基于 Oracle Database 11g 第 2 版代码库的小型入门级数据库 ...
- C++面试常见问题——08const关键字
const 类内定义 类型名 函数名(参数列表) const{ //函数体: } 类外定义 类内申明 类型名 函数名(参数列表): 类外定义 类型名 类名::函数名(参数列表){ //函数体: ...
- SQLAlchemy建立数据库模型之间的关系
一对多关系 多对一关系 多对多关系 一对一关系 一对多关系(一个作者,多篇文章) ## 一对多关系,单作者-多文章,外键不可少 ## 外键(ForeignKey)总在多的那边定义,关系(relatio ...
- Floyd--P2419 [USACO08JAN]牛大赛Cow Contest
*传送 FJ的N(1 <= N <= 100)头奶牛们最近参加了场程序设计竞赛:).在赛场上,奶牛们按1..N依次编号.每头奶牛的编程能力不尽相同,并且没有哪两头奶牛的水平不相上下,也就是 ...
- Maven的安装和创建项目的过程
一.下载Maven包和配置环境变量 1.将下载好的maven包放到一个目录中:目录中不能有汉字和空格 2.配置环境变量 3.配置path路径 二.配置阿里云私服 1.找到setting目录,配置下载j ...
- 将已有微信小程序转换为多端应用
文档地址 https://nervjs.github.io/taro/
- 超低功耗Sub-1GHz性价比首选方案:CMT2300
关于超低功耗Sub-1GHz射频收发器,目前性价比方面CMT2300是一款大多客户的首选方案,不管是成本方面还是性能方面,都能大大的满足客户的需求.下面为大家讲解下CMT2300 这款Sub-1GHz ...
- css ~ a标签占满父级元素
width: 100%; height: 100%; display: block;
- k8s CI/CD--Jenkinsfile例子
试用k8s内部jenkins,并且配置好podtemplate pipeline{ agent any stages{ stage('get the code'){ steps{ ...
- 吴裕雄--天生自然 JAVASCRIPT开发学习:比较 和 逻辑运算符
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...