繁体   English   中英

如何在 java 的数组中找到最高和第二高值的 position

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

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