[英]How to find the position of the highest and second highest value in an array in java
假設我們有一個包含 integer 數字的數組。 例如周長={180,50,65,78,90,5,150,2,35},我想在數組中找到最大值及其 position,在數組中找到第二個值及其 position。
public class FindTopTwo {
public static void main(String[] args) {
double perimeter[]= {180,50,65,78,90,5,150,2,35};
double megisto, megisto2;
int i;
megisto=perimeter[0];
megisto2=perimeter[0];
for (i=0;i<perimeter.length;i++) {
if (perimeter[i]>megisto) {
megisto2=megisto;
megisto=perimeter[i];}
else if (perimeter[i]>megisto2) {
megisto2=perimeter[i];
}
}
System.out.println("the first is:"+megisto+"the second highest value is "+megisto2);
}
}
當它們的值發生變化時,只需跟蹤它們的索引( i
):
public static void main(String[] args) {
double perimeter[]= {180,50,65,78,90,5,150,2,35};
double megisto, megisto2;
megisto=perimeter[0];
int megistoIndex = 0;
megisto2=perimeter[0];
int megisto2Index = 0;
for (int i=0;i<perimeter.length;i++) {
if (perimeter[i]>megisto) {
megistoIndex = i;
megisto = perimeter[i];
} else if (perimeter[i] < megisto && perimeter[i] > megisto2) {
megisto2Index = i;
megisto2 = perimeter[i];
}
}
System.out.println(String.format("the first is: %d at index %d. The second highest value is %d at index %d", megisto, megistoIndex, megisto2, megisto2Index));
}
set highestIndex = -1;
set nextHighestIndex = -1;
for every element of perimiter:
if highestIndex = -1:
set highestIndex = i;
else if perimiter[i] > perimiter[highestIndex]
set nextHighestIndex = highestIndex;
set highestIndex = i;
else if perimiter[i] > perimieter[nextHighestIndex]
set nextHighestIndex = i;
如果數組不為空,則會在 perimiter[highestIndex] 中找到最大值
如果數組至少有兩個不同的值,您將在 perimeter[nextHighestIndex] 中找到第二高的值
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.