繁体   English   中英

在Java中找到两个最大值

[英]finding two max values in Java

有人可以帮我吗? 我想使用一种方法找到数组的最大值和第二个最大值。 我已经知道如何获得最小值和第二个最小值,它基本上几乎相同,但输出仍然错误? 这是我如何找到两个最小值的方法。

public static void minimum( int [] a ) {
int min;
for (int i = 0; i< a.length; i++)  {
    for (int j = min = i; j< a.length; j++) {
        if (a[j] < a[min]) min = j;
        if(min>i) {
            int temp = a [i];
            a [i] = a [min];
            a [min] = temp;

        } 
}

所以,为了找到最大值,我认为这只是将<更改为>从这一行: if (a[j] < a[min]) min = j;` 所以,不是交换较小的值,而是交换较大的值。 但这是错误的,我不明白。

谢谢 !

如果你想自己编码,代码可以帮助你:

public static void maxNum(int[] a) {
    int length = a.length;
    if (length == 0) {
        System.out.println("the length of input array 0");
        return;
    }
    if (length == 1) {
        System.out.println("the max is " + a[0]);
        return;
    }
    int max = a[0] > a[1] ? a[0] : a[1];
    int secondMax = a[0] > a[1] ? a[1] : a[0];
    for (int i = 2; i < length; i++) {
        int value = a[i];
        if (value > max) {
            int tmp = max;
            max = value;
            secondMax = tmp;
        } else if (value > secondMax) {
            secondMax = value;
        }
    }
    System.out.println("the max is " + max);
    System.out.println("the second max is " + secondMax);
}

如果你不想自己编码,你可以使用java中的工具,比如Arrays.sort()先对数组进行排序,得到你想要的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM