How to find second largest number in an array in Java?

后端 未结 10 956
野的像风
野的像风 2021-01-01 05:57

I\'m just practicing some MIT java assignments. But, I\'m not sure how to find the second largest number. http://ocw.csail.mit.edu/f/13

  public class Marath         


        
10条回答
  •  慢半拍i
    慢半拍i (楼主)
    2021-01-01 06:14

    public void findMax(int a[]) {
        int large = Integer.MIN_VALUE;
        int secondLarge = Integer.MIN_VALUE;
        for (int i = 0; i < a.length; i++) {
            if (large < a[i]) {
                secondLarge = large;
                large = a[i];
            } else if (a[i] > secondLarge) {
                if (a[i] != large) {
                    secondLarge = a[i];
                }
            }
        }
        System.out.println("Large number " + large + " Second Large  number " + secondLarge);
    }
    

    The above code has been tested with integer arrays having duplicate entries, negative values. Largest number and second largest number are retrieved in one pass. This code only fails if array only contains multiple copy of same number like {8,8,8,8} or having only one number.

提交回复
热议问题