java基础:求数组的最值

方法一:顺序查找

先假设数组第一个元素为最值,然后和数组里的数按顺序进行比较得出最值,所以叫顺序查找。

代码如下

package idea;public class arr_int {public static void main(String[] args) {
//        初始化一个数组int[] arr = {12,22,35,6};
//    假设数组第一个元素是最大值,并把他的下标赋值给变量aint max = arr[0];int a = 0 ;
//   使用for循环遍历数组的元素并和假设的最大值进行比较,得出真正的最大值for (int i = 0 ; i < arr.length;i++){if (arr[i]>max){max = arr[i];a = i;}}System.out.println("数组的最大值是"+max);System.out.println("下标是"+a);}
}

运行结果如下

方法二:使用冒泡排序的方法

什么是冒泡排序

冒泡排序是一种简单的排序算法,其基本思想是多次遍历待排序的元素,比较相邻的两个元素,如果顺序不对则交换它们的位置,直到整个序列按照从小到大(或从大到小)的顺序排列。

具体的步骤如下:

  1. 从待排序的第一个元素开始,依次比较相邻的两个元素。
  2. 如果顺序不对,即前面的元素大于后面的元素,则交换它们的位置。
  3. 继续比较下一对相邻元素,重复上述步骤,直到最后一个元素。
  4. 一轮遍历结束后,最大(或最小)的元素会被移动到最后一个位置。
  5. 对剩下的未排序部分重复上述步骤,直到所有元素都按照要求排序。

原理图片展示:

声明:此原理图片来源与作者本人以前的博客,不存在侵权行为。

代码如下

package idea;public class arr_int {public static void main(String[] args) {
//        初始化一个int数组int[] arr = {20,30,10,81,99};int temp = 0;
//        使用冒泡排序使得数组按从小到大排序,最后一个数字就是最大值for (int i = 0 ; i < arr.length-1; i++){for (int j = 0; j<arr.length-1-i;j++){if (arr[i]>arr[i+1]){temp = arr[i];arr[i] = arr[i+1];arr[i+1]=temp;}}}//        打印输出最大值System.out.println("数组的最小值是"+arr[0]);System.out.println("下标是"+0);System.out.println("数组的最大值是"+arr[arr.length-1]);System.out.println("下标是"+(arr.length-1));}
}

运行结果如下

下面的代码是用python语言实现求列表的最大值的办法,直接调用库函数,代码特别简洁。

那java中有没有和python语言中类似的方法直接调用库函数的办法求出最值呢,当然是有的啦。

方法三:通过`java.util.Arrays`类的工具方法间接实现

Java标准库中并没有直接提供一个函数来获取数组中的最值,但可以通过`java.util.Arrays`类的工具方法间接实现。具体做法是先对数组进行排序,然后访问排序后的首尾元素以获取最小和最大值。

代码如下

package idea;import java.util.Arrays;public class arr_int {public static void main(String[] args) {
//        初始化一个数组int[] arr = {1,2,35,6};
//        对数组进行从小到大排序,通过`java.util.Arrays`类的工具方法Arrays.sort(arr);
//        输出最值System.out.println("数组的最小值是"+arr[0]);System.out.println("下标是"+0);System.out.println("数组最大值是"+arr[arr.length-1]);System.out.println("下标是"+(arr.length-1));}
}

运行结果如下

总结:

顺序查找和冒泡排序可以让你直观的知道是如何找到最值的,通过`java.util.Arrays`类的工具方法间接实现非常抽象只能让你知其然而不知其所以然,对于学习阶段来说,前两种是打基础用的,为以后使用高效快捷的办法做准备。

拜拜!

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

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

相关文章

山海鲸可视化软件:引领航空业数字化转型的智慧机场解决方案

作为山海鲸可视化软件的开发者&#xff0c;我们深知在当今数字化时代&#xff0c;数据可视化的重要性。特别是在航空业&#xff0c;数据可视化不仅可以提高运营效率&#xff0c;还能为决策者提供更准确、实时的信息。为此&#xff0c;我们推出了一款专为智慧机场设计的可视化解…

计算机毕业设计 基于SSM的历史/博物馆藏系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

go 语言(九)----struct

定义一个结构体 type Book struct {title stringauth string }结构体使用 package mainimport "fmt"//定义一个结构体 type Book struct {title stringauth string }func main() {var book1 Bookbook1.title "Golang"book1.auth "zhang3"fmt…

4人遇难,北京突发火情 富维烟火识别防止悲剧再次发生

在北京一处居民区&#xff0c;一场突如其来的火灾夺走了四条宝贵的生命。火情迅速蔓延&#xff0c;烟雾弥漫&#xff0c;居民们猝不及防。这一悲剧再次提醒我们&#xff0c;火灾预防和早期识别的重要性不容忽视。 在这样的背景下&#xff0c;北京富维图像公司开发的FIS智能图像…

TQ7.2WS-N3,Tide Quencher 7.2WS-叠氮,主要用于标记含有羰基的生物分子

您好&#xff0c;欢迎来到新研之家 文章关键词&#xff1a;Tide Quencher 7.2WS azide&#xff0c;TQ7.2WS azide&#xff0c;Tide Quencher 7.2WS N3 &#xff0c;TQ7.2WS N3&#xff0c;Tide Quencher 7.2WS 叠氮&#xff0c;TQ7.2WS 叠氮 一、基本信息 产品简介&#xff…

【我与Java的成长记】之多态,重载与重写详解

系列文章目录 能看懂文字就能明白系列 C语言笔记传送门 Java笔记传送门 &#x1f31f; 个人主页&#xff1a;古德猫宁- &#x1f308; 信念如阳光&#xff0c;照亮前行的每一步 文章目录 系列文章目录&#x1f308; *信念如阳光&#xff0c;照亮前行的每一步* 前言一、多态的概…

区间预测 | Matlab实现LSTM-Adaboost-ABKDE的集成学习长短期记忆神经网络自适应带宽核密度估计多变量回归区间预测

区间预测 | Matlab实现LSTM-Adaboost-ABKDE的集成学习长短期记忆神经网络自适应带宽核密度估计多变量回归区间预测 目录 区间预测 | Matlab实现LSTM-Adaboost-ABKDE的集成学习长短期记忆神经网络自适应带宽核密度估计多变量回归区间预测效果一览基本介绍程序设计参考资料 效果一…

Puppeteer让你网页操作更简单(2)抓取数据

Puppeteer让你网页操作更简单(1)屏幕截图】 示例2 —— 让我们抓取一些数据 现在您已经了解了Headless Chrome和Puppeteer的工作原理基础知识,让我们看一个更复杂的示例,其中我们实际上可以抓取一些数据。 首先,请查看此处的Puppeteer API文档。如您所见,有大量不同的方法我…

大模型压缩与优化的技术原理与创新方法

目录 前言1 模型压缩简介2 知识蒸馏3 模型剪枝3.1 结构化剪枝3.2 非结构化剪枝 4 模型量化4.1 浮点表示 vs 定点表示4.2 位数选择与性能影响4.3 量化技术 5 其他模型压缩方法5.1 Weight Sharing: 参数共享5.2 Low-rank Approximation: 低秩分解5.3 Architecture Search: 神经网…

Halcon基于形变的模板匹配

Halcon基于形变的模板匹配 形变分为两种&#xff0c;一种是基于目标局部的形变&#xff0c;另一种是由于透视关系而产生的形变。基于形变的模板匹配也是一种基于形状的匹配方法&#xff0c;但不同的是&#xff0c;其返回结果中不仅包括轻微形变的形状.形变的位置和参数&#x…

Python GUI 新手入门教程:轻松构建图形用户界面

Python 凭借其简单性和多功能性&#xff0c;已经成为最流行的编程语言之一。被广泛应用于从 web 开发到数据科学的各个领域。 在本教程中&#xff0c;我们将探索用于创建图形用户界面&#xff08;GUIs&#xff09;的 Python 内置库&#xff1a; Tkinter&#xff1a;无论你是初…

Git 基本命令与操作流

记录 Git 中的基本命令和创建仓库、提交文件、删除文件等方面的操作 Git 基本命令 git status&#xff1a;查看状态 nothing to commit, working directory clean&#xff1a;所有已跟踪文件在上次提交后都未被更改过&#xff0c;或者说当前目录下没有出现任何处于未跟踪状态…