二分查找实现

二分查找实现

1.调用Arrays中的binarySearch方法即可实现
【使用前提:数组必须为升序排列】

public class Demo1 {public static void main(String[] args) {int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};//查找元素定为4int key = 4;int index1 = Arrays.binarySearch(arr, 4);//3System.out.println("对应的索引为:"+index1);int index2 = Arrays.binarySearch(arr, 11);//-11查找的元素不存在,返回的则是(-插入点-1)//插入点:如果这个元素在数组中,它应该在哪个索引上//-1是防止元素为0不存在,索引返回0,为了避免则-1System.out.println("对应的索引为:"+index2);}
}打印结果:
-----------------------------------------------------
对应的索引为:3
对应的索引为:-11

2.其底层代码实现逻辑为:
【使用前提:数组必须为有序排列,下面为升序版,如果为降序则将start和end做替换】

public class Demo1 {public static void main(String[] args) {int []arr ={1,2,3,4,5,6,7,8,9,10};//查找元素定为4int key =4;//定义初始和结尾索引int index = getbinarySerach(arr, key);//对反回值做判断if(index!=-1){System.out.println(key+"对应的索引为"+index);}else {System.out.println("该数组中没有该元素");}}private static int getbinarySerach(int[] arr, int key) {int start =0;int end =arr.length-1,mid;//循环判断mid的值while (start<=end) {mid =(end+start)>>1;if(arr[mid]<key){start =mid +1;}else if(arr[mid]>key){end =mid -1;}else {return mid;}}return -1;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/330884.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java程序员必须掌握的常用Linux命令

转载自 Java程序员必须掌握的常用Linux命令 Java程序员也是半个运维了&#xff0c;在日常开发中经常会接触到Linux环境操作。小公司的开发人员甚至是兼了全运维的工作&#xff0c;下面整理了一些常用的Linux操作命令。 Linux常用指令 ls   显示文件或目录-l 列…

分类器评价指标

转自&#xff1a;http://www.cnblogs.com/549294286/p/3621740.html&#xff1b; By the way, classic post like 分类指标准确率(Precision)和正确率(Accuracy)的区别 精度和召回率是广泛用于信息检索和统计学分类领域的两个度量值&#xff0c;用来评价结果的质量。其中精度是…

冒泡排序、快排实现

排序实现 1.可调用Arrays.sort方法实现 public class Demo3 {public static void main(String[] args) {int []arr{3,5,2,1,4};Arrays.sort(arr);//可调用Arrays.toString方法打印数组System.out.println(Arrays.toString(arr));} }打印结果&#xff1a; -------------------…

ElasticJob-分布式作业调度神器,你们还在用Quartz吗

转载自 ElasticJob&#xff0d;分布式作业调度神器&#xff0c;你们还在用Quartz吗&#xff1f;&#xff01; 简介 Elastic-Job是一个分布式调度解决方案&#xff0c;由两个相互独立的子项目Elastic-Job-Lite和Elastic-Job-Cloud组成。 Elastic-Job-Lite定位为轻量级无中心化解…

分类器评估参数——准确度和精度的区别(足球荔枝)

refer to http://www.mathsisfun.com/accuracy-precision.html 准确率accuracy 和 精度precision 的不同&#xff1a; &#xff08;1&#xff09;Accuracy is how close a measured value is to the actual (true) value. 准确率是测量值与实际&#xff08;真&#xff09;值的…

JDK7的日期时间类

JDK7的日期时间类 Date类 1.概念 Date类表示时间&#xff0c;时间可以精确到毫秒。创建一个Date对象&#xff0c;其实就表示时间的对象 2.构造方法和成员方法 public class Demo1 {public static void main(String[] args) {//空参构造(将系统当前时间封装为时间对象[毫秒值…

Java 10的10个新特性,将彻底改变你写代码的方式

转载自 Java 10的10个新特性&#xff0c;将彻底改变你写代码的方式 Java 9才发布几个月&#xff0c;很多玩意都没整明白&#xff0c;现在Java 10又要来了。。 这时候我真尼玛想说&#xff1a;线上用的JDK 7 甚至JDK 6&#xff0c;JDK 8 还没用熟&#xff0c;JDK 9 才发布不久不…

如何评估模型的预测性能?

you can refer to 如何评估模型的预测性能&#xff1f; 一、模型评估简介 http://www2.mccombs.utexas.edu/faculty/Maytal.Saar-Tsechansky/Teaching/MIS_373/Fall2004/Model Evaluation.ppt 二、评估数据 用于模型评估的数据和用于模型训练的数据最好是两套&#xff0c;否则用…

JDK8的日期时间类1

localDateTime类 1.分类 将时间分成 localDate类【年月日]】 localTime类【时分秒】 localDateTime类【年月日时分秒】 2.localDateTime类【常用】 &#xff08;1&#xff09;构造方法 public class Demo1 {public static void main(String[] args) {//localDateTime[天时分…

Spring Boot 2.0 正式发布

转载自 重磅&#xff1a;Spring Boot 2.0 正式发布&#xff01; Spring Boot 2.0 正式发布&#xff01; 2018/03/01最新消息&#xff0c;传得沸沸扬扬的Spring Boot 2.0 正式发布了。 小编去看了下Spring Boot的官网&#xff0c;正式版本已经释放出来了&#xff01;&#xff01…

LNCS用户写作指南【 Springer Computer Science Proceedings 】

转自&#xff1a; http://blog.csdn.net/wyskys/article/details/18075471 重点是文末的参考文献格式&#xff08;主要的是 链接&#xff0c; 期刊论文&#xff0c;会议论文的引用格式&#xff09; 下載地址 &#xff1a;http://static.springer.com/sgw/documents/1121537/a…

JDK8的日期时间类2

1.localDateTime类格式化和解析 概念 &#xff08;1&#xff09;格式化:把localDateTime对象转换为String,需通过DateTimeFormatter对象指定格式 &#xff08;2&#xff09;解析:把String转换为localDateTime对象,需通过DateTimeFormatter对象指定格式 注&#xff1a;localDat…

44个Java代码性能优化总结

转载自 44个Java代码性能优化总结代码优化的最重要的作用应该是&#xff1a;避免未知的错误。在代码上线运行的过程中&#xff0c;往往会出现很多我们意想不到的错误&#xff0c;因为线上环境和开发环境是非常不同的&#xff0c;错误定位到最后往往是一个非常小的原因。然而为了…

JDK8的日期时间类3

计算两个时间的间隔 方法&#xff1a;between【静态方法】 1.获取相隔的年月日用Period调用&#xff0c;参数用LocalDate类对象封装的时间 2.获取相隔的天年月日用Duration调用&#xff0c;参数用LocalDateTime类对象封装的时间 //计算两个时间的间隔 public class Demo7 {pu…

分类算法中常用的评价指标

转自&#xff1a; 分类算法中常用的评价指标 来自网络&#xff0c;备份勿忘&#xff01; 对于分类器&#xff08;分类算法&#xff09;&#xff0c;评价指标主要有&#xff1a;1&#xff09;Precision&#xff1b;2&#xff09;Recall&#xff1b;3&#xff09;F-score;4)Accur…

Java 9 中的9个新特性

转载自 强悍&#xff01;Java 9 中的9个新特性 你可能已经听说过 Java 9 的模块系统&#xff0c;但是这个新版本还有许多其它的更新。 这里有九个令人兴奋的新功能将与 Java 9 一起发布。 Java 平台级模块系统 Java 9 的定义功能是一套全新的模块系统。当代码库越来越大&#…

处理可能发生的异常

什么是异常? 异常指的时程序在【编译】和【运行时】的一些不正常的状况。 Java的工程师其实早就想到可能会出现这些问题&#xff0c;他们把常见的问题写成类。 当我们出现这些异常时&#xff0c;可以根据API中去查找这些异常产生的原因。 ArrayIndexOutOfBoundsException: 数组…

如何评价分类模型性能?(足球荔枝)

【1】评价分类模型&#xff0c;我们一般从两个点出发 1.通过指标来评估该模型是否适合对预测对象&#xff1f; 评价指标主要有&#xff1a;1&#xff09;Precision&#xff1b;2&#xff09;Recall&#xff1b;3&#xff09;F-score;4)Accuracy;5)ROC;6)AUC[1] 2.通过计算预测…

区块链在阿里巴巴天猫中的应用

转载自 双11&#xff1a;区块链在阿里巴巴天猫中的应用 背景 天猫国际正在全面启动全球溯源计划——将利用区块链技术、药监码技术以及大数据跟踪进口商品全链路&#xff0c;汇集生产、运输、通关、报检、第三方检验等信息&#xff0c;给每个跨境进口商品打上“身份证”。这项…

这七种回归分析技术,学了不后悔

转自&#xff1a; http://dataunion.org/20514.html 什么是回归分析&#xff1f; 回归分析是一种预测性的建模技术&#xff0c;它研究的是因变量&#xff08;目标&#xff09;和自变量&#xff08;预测器&#xff09;之间的关系。这种技术通常用于预测分析&#xff0c;时间序列…