JAVA--数组元素查找方法

2023-10-27

从头遍历:

   没有约束条件

/*数组元素的查找方法*/
    public static int getIndex(int[] arr,int key){
            for(int i=0;i<arr.length;i++){
                if(arr[i]==key){
                    return i;    // 查找到该元素返回该元素在数组中的索引
                }
            }
            return -1;    // 没有查找到该元素返回-1
    }

折半查找:

   折半查找可以提高查找效率,但是必须要保证该数组是有序的数组。

第一种方式:

// 折半查找:前提条件该数组内的数据必须是有序的
	public static int halfSearch(int[] arr,int key){
		int min,max,mid;
		min=0;	//  数组最小索引值
		max=arr.length-1;	// 数组最大索引值
		mid=(min+max)/2;	// 数组中间索引值
		
		while(arr[mid]!=key){
			if(arr[mid]>key){
				max=mid-1;
			}
			if(arr[mid]<key){
				min=mid+1;
			}
			// 查找完毕,该数组没有该元素返回-1
			if(min>max){
				return -1;
			}
			mid=(min+max)/2;
		}
		return mid;
	}

第二种方式:

// 折半查找:前提条件该数组内的数据必须是有序的
	public static int halfSearch_2(int[] arr,int key){
		int min=0,max=arr.length-1,mid;
		
		while(min<=max){
			mid=(min+max)>>1;
			
			if(key>arr[mid]){
				min=mid+1;
			}
			else if(key<arr[mid]){
				max=mid-1;
			}
			else{
				return mid;
			}
		}
		return -1;
	}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JAVA--数组元素查找方法 的相关文章

随机推荐

  • DEDECMS单独调用指定文章

    dede arclist idlist 指定ID limit 0 1 a href field title a 描述 field description dede arclist
  • js中获取body html元素

  • myBatis实现多对多操作的sql语句

    文章目录 1 角色对人 2 人对角色 3 创建数据库语句 总结 1 角色对人 实现角色对人的多对多查询 将有角色的人筛选出来 实现角色对人的多对多查询 SELECT u r id AS rid r role name r role desc
  • Go_方法、方法重写、方法与函数的区别

    方法 方法是绑定在自定义类型上的 常用在结构体上 方法方法不能直接调用 只能通过所绑定s类型的变量来调用 因为方法是和类型做关联的 方法是值拷贝的传递方式 如果希望改变结构体变量的值 需要通过结构体指针实现 方法名首字母大写为公共 小写为私
  • Tomcat的下载及其使用

    目录 一 Tomcat是什么 二 Tomcat的下载安装 1 在搜索框搜索Tomcat 2 下载 3 Tomcat里面的一些具体内容 三 运行Tomcat 1 直接点击脚本运行 2 使用浏览器访问 3 部署页面到Tomcat 一 Tomca
  • Win10如何彻底删除360的办法

    很多用户在购买电脑或者重装系统之后都会给电脑安装360安全卫士 其实360是一款知名的流氓软件 感觉进行了彻底的删除工作 其实还残留了很多 那Win10如何彻底删除360呢 下面小编就来给大家展示一下具体的办法 2022新版Win10 64
  • SQL Part3 --- 聚合操作符

    SQL 聚合操作符 聚合操作符 Aggregate Operators COUNT A SUM A AVG A MAX A MIN A GROUP BY and HAVING 聚合操作符 Aggregate Operators Sailor
  • 在Spring-Boot中进行单元测试

    要进行单元测试 需要引入依赖
  • 关于stl容器的迭代器失效问题

    场景 在项目中使用stl容器的时候 多线程环境下出错 调试很久发现问题是使用容器的时候由于容器扩容导致的线程不安全 还有扩容导致的迭代器失效问题 于是就想着把迭代器失效的问题总结一下 场景重现1 我在项目开发中使用vector时 由于扩容导
  • redis-benchmark工具入门之生成压测数据写入redis

    前言 redis benchmark是Redis自带的基准测试工具 可以用来压测redis目标集群的性能 也可以生成测试数据 方便测试 安装redis benchmark 本文Ubuntu系统 安装工具包 sudo apt get inst
  • 怎样正确查看Linux的内存占用情况

    了个24小时的稳定性测试 探讨了Linux的Mem使用情况 看内存最方便的命令是free m 如 root host free m total used free shared buffers cached Mem 1024 1005 19
  • 100ask_imx6ull视频监控项目-内网穿透(六)

    100ask imx6ull视频监控项目 内网穿透 六 在前面的课程 Ffmpeg和Nginx都运行在开发板上 拉流端只能在同一个局域网内 不能通过局域网外的互联网访问Ngnix 想在任何地方 都可以通过互联网访问Nginx 怎么办 方法1
  • scikit-learn kmeans++

    聚类分析在客户细分中极为重要 有三类比较常见的聚类模型 K mean聚类 层次 系统 聚类 最大期望EM算法 在聚类模型建立过程中 一个比较关键的问题是如何评价聚类结果如何 会用一些指标来评价 原文 http blog csdn net s
  • 【控制工程】单位跃阶响应与传递函数

    一 一阶线性时不变系统的单位阶跃响应 1 单位跃阶 Unit Step 单位阶跃响应是指系统在 单位阶跃信号 的作用下所产生的 零状态响应 作用 可以反应系统的动态特性 所以是分析系统时十分重要和常用的响应类型 注意 单位阶跃函数在t 0这
  • 【数模】TOPSIS法优劣解距离法

    TOPSIS的介绍 利用原始数据的信息 其结果能精确地反映各评价方案之间的差距 层次分析法的局限性 评价的决策层不能太多 否则n很大 判断矩阵和一致矩阵差异可能会很大 平均随机一致性指标RI的表格中n最多是15 TOPSIS步骤 1 将原始
  • 8645 归并排序(非递归算法)

    8645 归并排序 非递归算法 如果你看到和我的贼相似的 那我就是抄的 别骂了 代码实现 include
  • Spring MVC的高级功能(异常处理器,拦截器,文件操作)

    目录 异常处理 拦截器 文件上传和下载 1 异常处理 简单异常处理 自定义异常处理 异常处理注解 简单异常处理器 HandlerExceptionResolver接口 如果希望对Spring MVC中所有异常进行统一处理 可以使用Sprin
  • 卷积层的主要作用_关于卷积的一些基本概念理解(不仅仅是卷积)

    卷积就是相乘再相加 卷积核需要翻转 方便对图像提取特征或者是其他的一些目的 比如边缘检测 除了原图像之外 另一个被用来相乘相加的就被称为是卷积核 同时 卷积核也被称为滤波器 卷积的更加详细生动的解释 https www cnblogs co
  • 百度开源PaddleOCR 超轻量级中文OCR模型,总模型仅8.6M 测试

    版本 https github com PaddlePaddle PaddleOCR git 可以与同样轻量级的ocr识别比较 百度的要好一点 https blog csdn net jy1023408440 article details
  • JAVA--数组元素查找方法

    从头遍历 没有约束条件 数组元素的查找方法 public static int getIndex int arr int key for int i 0 i