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.mzph.cn/news/634214.shtml

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

相关文章

OpenGL Assimp加载各类型模型(.obj、.fbx、.glb、.3ds)

1.简介 本博客以.glb格式为例&#xff0c;加载glb格式的3d模型&#xff0c;网上找了一圈&#xff0c;基本上都是根据OpenGL官方示例&#xff0c;加载.obj格式的3d模型。 下面以.obj和.glb格式的3D模型简单介绍一下。 常见的.obj格式的3D模型如下所示&#xff1a;纹理都已经被…

往docker中cloudbeaver的容器添加达梦数据库、impala数据库连接支持(cloudbeaver添加自定义数据连接)

cloudbeaver默认没有开放impala连接&#xff0c;更不会支持国产数据库了 docker安装运行cloudbeaver可以参考文章&#xff1a;docker安装运行CloudBeaver并设置默认语言为中文 本文跳过cloudbeaver镜像拉取&#xff0c;直接就开始实现自定义数据库连接功能 1、初始化cloudbe…

C语言——atoi函数解析

目录 前言 atoi函数的介绍 atoi函数的使用 atoi函数的模拟实现 前言 对于atoi函数大家可能会有些陌生&#xff0c;不过当你选择并阅读到这里时&#xff0c;请往下阅读&#xff0c;我相信你能对atoi函数熟悉该函数的头文件为<stdlib.h> 或 <cstdlib> atoi函数的…

基于springboot+vue的房屋租赁系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目背景…

从 GPT1 - GPT4 拆解

从 GPT1 - GPT4 拆解 从 GPT1 - GPT4GPT1&#xff1a;更适用于文本生成领域GPT2&#xff1a;扩展数据集、模型参数&#xff0c;实现一脑多用&#xff08;多个任务&#xff09;GPT3&#xff1a;元学习 大力出奇迹InstructGPT&#xff1a;指示和提示学习 人工反馈强化学习 RLHF…

什么?2024年AMC8正式比赛提前20多分钟强制交卷?后续如何处理?

今天&#xff08;2024年1月19日&#xff09;17:00-17:40是2024年AMC8美国数学思维活动&#xff08;竞赛&#xff09;正式比赛的时间&#xff0c;全国报名参加AMC8比赛的孩子们按要求提前架设好了设备&#xff0c;准时按要求登录考试系统&#xff0c;17点准时开考。原计划是要考…

排序链表(LeetCode 148)

文章目录 1.问题描述2.难度等级3.热门指数4.解题思路参考文献 1.问题描述 给你链表的头结点 head &#xff0c;请将其按 升序 排列并返回 排序后的链表 。 示例 1&#xff1a; 输入&#xff1a;head [4,2,1,3] 输出&#xff1a;[1,2,3,4]示例 2&#xff1a; 输入&#xff…

2023年全球软件架构师峰会(ArchSummit深圳站):核心内容与学习收获(附大会核心PPT下载)

本次峰会是一次重要的技术盛会&#xff0c;旨在为全球软件架构师提供一个交流和学习的平台。本次峰会聚焦于软件架构的最新趋势、最佳实践和技术创新&#xff0c;吸引了来自世界各地的软件架构师、技术专家和企业领袖。 在峰会中&#xff0c;与会者可以了解到数字化、AIGC、To…

C语言-字符串分割函数 strtok、strtok_r

一、函数介绍 函数名 strtok, strtok_r - extract tokens from strings //从字符串中提取标记头文件 #include <string.h>文件原型 char *strtok(char *str, const char *delim);char *strtok_r(char *str, const char *delim, char **saveptr);二、测试代码 官方代码…

外网连接配置及acl配置使用

外网连接 在路由器上进行配置 配置nat功能 NAT配置&#xff1a; [R1]acl basic 2000 创建acl规则 编号为2000 [R1-acl-ipv4-basic-2000]rule 0 permit source any 允许所有数据包 [R1-acl-ipv4-basic-2000]quit [R1]nat address-group 1 配置出接口转换地址 [R…

Unity-场景

创建场景 创建新的场景后&#xff1a; 文件 -> 生成设置 -> Build中的场景 -> 将项目中需要使用的场景拖进去 SceneTest public class SceneTest : MonoBehaviour {// Start is called before the first frame updatevoid Start(){// 两个类&#xff1a; 场景类、场…

广告灯的左移右移

1&#xff0e;  实验任务 做单一灯的左移右移&#xff0c;硬件电路如图4.4.1所示&#xff0c;八个发光二极管L1&#xff0d;L8分别接在单片机的P1.0&#xff0d;P1.7接口上&#xff0c;输出“0”时&#xff0c;发光二极管亮&#xff0c;开始时&#xff0c;P1.0→P1.1→P1.2→…

【分享】MathWorks中国汽车年会:“软件定义汽车”

从软件赋能到软件定义&#xff0c;汽车行业不仅需要解决诸如错误发现滞后带来的高昂代价、功能融合所需的跨学科知识、功能安全与实施成本之间的权衡等老问题&#xff0c;也面临着新的挑战&#xff1a;软件复杂度的不断提升、利用数据驱动创造价值、人工智能的引入和实现、数字…

transbigdata笔记:清理研究区域内的轨迹漂移

1 方法介绍 transbigdata 考虑了三种轨迹漂移&#xff0c;需要被清理 速度阈值&#xff1a;如果当前轨迹数据点与之前&#xff08;和后续&#xff09;轨迹数据点之间的速度超过阈值&#xff0c;则视为漂移。 距离阈值&#xff1a;如果当前轨迹数据点与上一个&#xff08;和后…

统计学-R语言-6.2

文章目录 前言总体均值的区间估计两个总体均值之差的估计两个总体均值之差的估计&#xff08;独立大样本的估计&#xff09;两个总体均值之差的估计&#xff08;独立小样本的估计&#xff09;两个总体均值之差的估计&#xff08;配对样本的估计&#xff09; 总体比例的区间估计…

python数字图像处理基础(九)——特征匹配

目录 蛮力匹配&#xff08;ORB匹配&#xff09;RANSAC算法全景图像拼接 蛮力匹配&#xff08;ORB匹配&#xff09; Brute-Force匹配非常简单&#xff0c;首先在第一幅图像中选取一个关键点然后依次与第二幅图像的每个关键点进行&#xff08;描述符&#xff09;距离测试&#x…

前端-基础 表格标签 总结

目录 表格的相关标签 &#xff1a; 表格的相关属性 合并单元格 &#xff1a; 表格的相关标签 &#xff1a; 表格标签 - <table> 行标签 - <tr> 单元格标签 - <td> 表头单元格标签 - <th> 表格结构标签 表头区域标签 - < thead >…

MySQL 查询数据

今天介绍一下 MySQL 数据库使用 SELECT 语句来查询数据。 语法 首先&#xff0c;介绍一下语法。以下为在 MySQL 数据库中查询数据通用的 SELECT 语法&#xff1a; SELECT column1, column2, ... FROM table_name [WHERE condition] [ORDER BY column_name [ASC | DESC]] [LI…

【算法】递归

递归 递归初始递归&#xff1a;数列求和递归的应用&#xff1a;任意进制转换递归深度限制递归可视化&#xff1a;分形树递归可视化&#xff1a;谢尔宾斯基Sierpinski三角形递归的应用&#xff1a;汉诺塔递归的应用&#xff1a;探索迷宫 分治策略和递归优化问题兑换最少个数硬币…

Vue 3 hooks的基本使用及疑问

前言 vue3也用过一段时间了&#xff0c;hooks听说过&#xff0c;但是一直没有用过。公司的前端项目里也没有相应的应用&#xff0c;因此打算系统的学习一下。 hooks与普通函数的区别 以实现一个加法功能为例。 普通函数未抽离 <template><div class"box&quo…