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);
    }
}

运行结果如下

java基础:求数组的最值,JAVA学习笔记,java,算法,排序算法

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

什么是冒泡排序

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

具体的步骤如下:

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

原理图片展示:

java基础:求数组的最值,JAVA学习笔记,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));

    }
}

运行结果如下

java基础:求数组的最值,JAVA学习笔记,java,算法,排序算法

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

java基础:求数组的最值,JAVA学习笔记,java,算法,排序算法

那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基础:求数组的最值,JAVA学习笔记,java,算法,排序算法

总结:

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

拜拜!文章来源地址https://www.toymoban.com/news/detail-806252.html

到了这里,关于java基础:求数组的最值的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java学习笔记(七)——操作数组工具类Arrays

    操作数组的工具类。 Arrays.toString() Arrays.binarySearch() Arrays.copyOf() 如果新数组的长度小于原始数组的长度——部分拷贝 如果新数组的长度等于原始数组的长度——完全拷贝 如果新数组的长度大于原始数组的长度——完全拷贝+补上默认初始化值0 Arrays.copyOfRange() 范围:包头不包

    2024年01月21日
    浏览(40)
  • Java使用遗传算法,寻找十滴水问题的最优解

    近期某手游出了个活动,经确认发现本质为十滴水游戏。 简单说一下规则,棋盘大小通常为6x6,在游戏开始时,棋盘随机有若干水珠,其大小范围为1-4。点击棋盘内的一格,会消耗玩家持有的1个小水滴,同时使得该单元格的水珠大小+1。如果水珠大小超过4,则水珠发生爆炸

    2024年02月20日
    浏览(46)
  • 3Dmigoto学习笔记(2) d3dx.ini的最基础配置

    继续使用kena Bridge of Spirits来进行笔记记录,其它dx11游戏也是同样的原理。 在上一节中,成功安装了3dmigoto到游戏内,在本节内容中,将配置3dmigoto,使其能够用于打mod。 一般使用notepad++ 打开d3dx.ini,如果没有条件也可以使用记事本或其它文本编辑软件。

    2024年02月06日
    浏览(43)
  • 数据结构(12)Dijkstra算法JAVA版:图的最短路径问题

    目录 12.1.概述 12.1.1.无权图的最短路径  12.1.2.带权图的最短路径 1.单源最短路径 2.多源最短路径 12.2.代码实现 无权图的最短路径,即最少步数,使用BFS+贪心算法来求解最短路径,比较好实现,此处不做展开讨论。 有权图的最短路径,不考虑权重为负数的情况,因为权重为负

    2024年02月06日
    浏览(48)
  • Java基础学习笔记-5

    Java编程语言是一门广泛应用于软件开发领域的高级编程语言。它的强大特性和跨平台性使其成为许多开发者的首选语言。本文将介绍一些Java编程的关键概念,包括函数重载、可变参数、值传递、递归等,这些概念是Java编程的基础,对于理解和掌握Java语言至关重要。 Java基础

    2024年02月09日
    浏览(32)
  • Java基础学习笔记-1

    Java 是一门强大而广泛应用的编程语言,它的灵活性和跨平台特性使其成为许多开发者的首选。无论您是刚刚入门编程,还是已经有一些编程经验,掌握 Java 的基础知识都是构建更复杂程序的关键。 本学习笔记旨在帮助您深入了解 Java 编程语言的基础概念。我们将从变量和数

    2024年02月09日
    浏览(35)
  • Java基础学习笔记-4

    本学习笔记将介绍Java中的数组概念以及各种与数组相关的操作和示例代码。 Java基础学习笔记-1 Java基础学习笔记-2 Java基础学习笔记-3 这个示例演示了如何声明、分配内存和初始化一个整数数组,并打印数组的元素。 这个示例展示了声明、初始化数组的简化形式,同时演示了

    2024年02月09日
    浏览(34)
  • Java 基础语法学习笔记

    目录 一、Java语言概述 1.1 Java 的出现 1.2 Java的主要特性 1.3 Java语言的特点 1.4 Java语言的核心机制 1.5 Java语言的环境搭建  二、第一个Java程序 2.1 需要注意的问题 2.2 注释(comment)  2.3 注意点: 2.4 Java API 的文档 2.5 第一个 Java 程序 三、Java基本语法 3.1  Java中的名称命名规范  

    2024年02月06日
    浏览(43)
  • 【狂神说Java】Java零基础学习笔记-异常

    实际工作中,遇到的情况不可能是非常完美的。比如:你写的某个模块,用户输入不一定符合你的要求、你的程序要打开某个文件,这个文件可能不存在或者文件格式不对,你要读取数据库的数据,数据可能是空的等。我们的程序再跑着,内存或硬盘可能满了。等等。 软件程

    2024年02月12日
    浏览(39)
  • 【狂神说Java】Java零基础学习笔记-面向对象

    面向过程思想 步骤清晰简单,第一步做什么,第二步做什么.... 面对过程适合处理一些较为简单的问题 面向对象思想 物以类聚, 分类 的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考。最后,才对某个分类下的细节进行面向过程的思索。

    2024年02月12日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包