java基础:求数组的最值

方法一:顺序查找

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

代码如下

java 复制代码
package idea;


public class arr_int {
    public static void main(String[] args) {
//        初始化一个数组
        int[] arr = {12,22,35,6};
//    假设数组第一个元素是最大值,并把他的下标赋值给变量a
        int 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. 对剩下的未排序部分重复上述步骤,直到所有元素都按照要求排序。

原理图片展示:

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

代码如下

java 复制代码
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`类的工具方法间接实现。具体做法是先对数组进行排序,然后访问排序后的首尾元素以获取最小和最大值。

代码如下

java 复制代码
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`类的工具方法间接实现非常抽象只能让你知其然而不知其所以然,对于学习阶段来说,前两种是打基础用的,为以后使用高效快捷的办法做准备。

拜拜!

相关推荐
Voyager_412 分钟前
算法学习记录08——并归的应用(LeetCode[315])
学习·算法·leetcode
是码农一枚12 分钟前
洞悉过往,一目了然:浅述视频融合平台EasyCVR如何实现海量视频录像的智能检索与高效回看
算法
是码农一枚15 分钟前
解密视频汇聚平台EasyCVR视频编解码与转码技术如何成就全协议、全终端的无缝视频体验
算法
yuzhuanhei17 分钟前
机器学习算法常用算法
人工智能·算法·机器学习
墨着染霜华22 分钟前
Java Optional orElse orElseGet orElseThrow()
java
Bigger29 分钟前
🚀 真正实用的前端算法技巧:从 semver-compare 到智能版本排序
前端·javascript·算法
czhc114007566336 分钟前
JAVA1026 方法;类:抽象类、抽象类继承;接口、接口继承 Linux:Mysql
java·linux·mysql
海梨花38 分钟前
【力扣Hot100】刷题日记
算法·leetcode·1024程序员节
一 乐1 小时前
宠物管理|宠物店管理|基于SSM+vue的宠物店管理系统(源码+数据库+文档)
java·前端·数据库·vue.js·论文·毕设·宠物
DuHz1 小时前
使用稀疏采样方法减轻汽车雷达干扰——论文阅读
论文阅读·算法·汽车·信息与通信·信号处理