java—二分查找法[通俗易懂]

java—二分查找法[通俗易懂]/** * 二分查找法 * 注: 数组元素必须有顺序 * */public class sort4 { public static void main(String[] args) { int [] arr ={1,2,3,4,5,6,7,8}; int a = binarySerarch(arr,7); // 从这些数中查找7返回这个数字的索引 System….

大家好,又见面了,我是你们的朋友全栈君。

/**
 * 二分查找法
 * 注: 数组元素必须有顺序
 *
 */
public class sort4 {
	public static void main(String[] args) {
		int [] arr ={1,2,3,4,5,6,7,8};
		 int a  = binarySerarch(arr,7);  //  从这些数中查找7返回这个数字的索引
		 System.out.println(a);
	}
	private static int binarySerarch(int[] arr, int key) {
		
		int min = 0;                    //  最小的索引
		int max = arr.length - 1;	   //  最大的索引
		
		while(min<=max){
			System.err.println("最大索引" + max + "---" + "最小索引:" + min);
			int mid = (min + max)/2;  //  中间索引
			int midVal = arr[mid];     //  中间索引的值
			
			if (midVal<key) {  //  猜小了
				min = mid + 1;
			}else if(midVal>key) {
				max = mid-1;
			}else {
				return mid;
			}
		}
		return -1;
	}
}  

java---二分查找法[通俗易懂]

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/147229.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Lock Free Stack「建议收藏」

    Lock Free Stack「建议收藏」多线程下,无锁编程是种境界!其实Lock-Free或Lock-Low不单单是一种技术,而是一种思想。如前篇《HighPerformanceCacher》,里面使用“伪装双链表”,使锁尽量减少,从而提高性能。本文将使用CAS的原子访问方式实现一个Lock-FreeStack。何为CAS?通俗点就是先比较后交换,Interlocked.CompareExchange函数。何为原子访问?当一个线程访问一个资源的同时,保证其他线程不会在同一时刻访问同一资源,如Interlocked系列函数。.Net下BCL中

    2022年7月19日
    20
  • labview怎么做成应用程序(labview程序识别形状)

    labview是一款领先的图形化提供设计软件,labview也是一种图形化的编程语言的开发环境,labview更是NI设计平台的核心。历经不断创新,发布了版本labview2019,提供了最佳的解决方案,让用户轻松利用数据快速做出明智的决策。labview2016同样是一款可以帮助工程师完成从设计到测试等一系列步骤以及开发大中小型系统的图形化编程平台,软件以前所未有的程度集成了现有传统软件、IP和…

    2022年4月14日
    81
  • mysql 自动当前时间_Mysql 自动获取当前时间[通俗易懂]

    mysql 自动当前时间_Mysql 自动获取当前时间[通俗易懂]实现方式:1、将字段类型设为TIMESTAMP2、将默认值设为CURRENT_TIMESTAMP举例应用:1、MySQL脚本实现用例–添加CreateTime设置默认时间CURRENT_TIMESTAMPALTERTABLE`table_name`ADDCOLUMN`CreateTime`datetimeNULLDEFAULTCURRENT_TIMESTAMPC…

    2022年9月27日
    6
  • CentOS 初体验三: Yum 安装、卸载软件

    CentOS 初体验三: Yum 安装、卸载软件转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/78894974本文出自【赵彦军的博客】一:Yum简介Yum(全称为YellowdogUpdater,Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可

    2022年5月7日
    44
  • Tree命令的下载与使用「建议收藏」

    Tree命令的下载与使用「建议收藏」**Tree命令的下载与使用**前言作为一名Linux小白,今天第一次发博客,决定把我今天下载Linux中tree命令的过程记录下来,先来讲一讲我是怎么碰见tree这个命令的吧,今日看书时,无意中翻到tree这个命令得知这个命令可以以树状图列出目录结构,于是我便创建了一个名为aaa的文件夹和一个叫123的文件,并且复制了123文件(123复件),将123文件和123复件移进aaa文件夹,在…

    2022年7月24日
    40
  • SpringBoot上传文件(使用form)

    SpringBoot上传文件(使用form)介绍文件上传是企业开发中最常用的功能。本文主要介绍SpringBoot中使用表单上传时单文件上传和多文件上传的操作方式。maven依赖<dependency><groupId>org.springframework.boot</groupId><artifa…

    2022年5月1日
    199

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号