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 - 使用二 ...
随机推荐
- PHP-文件目录操作
使用递归遍历指定文件目录及其子目录下的所有文件 思路: 1.打开目录: 2.遍历目录,判断是否还是目录.是目录则返回第1步,不是目录进入第三步: 3.把文件名显示出来 使用到的文件目录操作函数: ...
- 文献阅读报告 - Social Ways: Learning Multi-Modal Distributions of Pedestrian Trajectories with GANs
文献引用 Amirian J, Hayet J B, Pettre J. Social Ways: Learning Multi-Modal Distributions of Pedestrian T ...
- Spring入门之一-------实现一个简单的IoC
一.场景模拟 public interface Human { public void goHome(); } Human:人类,下班了该回家啦 public interface Car { void ...
- 解决 .NET CORE3.0 MVC视图层不即时编译
微软官方文档 Razor 编译 Razor SDK 默认启用 Razor 文件的生成时和发布时编译. 启用后,运行时编译将补充生成时编译,允许更新 Razor 文件(如果对其进行编辑). 运行时编译 ...
- echars的使用
1.首先引入echars的js文件 该文件可从echars官网下载 在某些图表中可能会引用ecStat.js文件 如线性回归散点图 我们直接下载引用即可 <head> <title& ...
- vue组件化应用构建
组件系统是 Vue 的另一个重要概念,因为它是一种抽象,允许我们使用小型.独立和通常可复用的组件构建大型应用.仔细想想,几乎任意类型的应用界面都可以抽象为一个组件树: 在 Vue 里,一个组件本质上是 ...
- java里mongodb复合查询
Query query = new Query();Criteria criteria = Criteria.where("packetTitle").is(redPacketSt ...
- 读书笔记 - js高级程序设计 - 第六章 面向对象的程序设计
EcmaScript有两种属性 数据属性 和 访问器属性 数据属性有4个特性 Configurable Enumerable Writable Value 前三个值的默认值都为false ...
- Mysql时间范围分区(RANGE COLUMNS方式)
1.创建测试表 CREATE TABLE `t_test` ( `id` ), `dates` DATETIME ); ALTER TABLE t_test ADD PRIMARY KEY (id); ...
- 从 relu 的多种实现来看 torch.nn 与 torch.nn.functional 的区别与联系
从 relu 的多种实现来看 torch.nn 与 torch.nn.functional 的区别与联系 relu多种实现之间的关系 relu 函数在 pytorch 中总共有 3 次出现: torc ...