[英]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.