Java program to find second largest number in an array ?



Java program to find second largest number in an array ?

  • Given an array of integers, our task is to write a program that efficiently finds the second largest element present in the array.

Algorithm:

  • Initialize two variables first and second to INT_MIN as,
    • first = second = INT_MIN
  • Start traversing the array,
  • a) If the current element in array say arr[i] is greater than first. Then update first and second as,
    • second = first
    • first = arr[i]
    b) If the current element is in between first and second, then update second to store the value of current variable as
    • second = arr[i]
  • Return the value stored in second.

step 1

  • Iterate the given array.

Step 2 (first if condition arr[i] > largest):

  • If current array value is greater than largest value then move the largest value to secondLargest and make current value as largest

Step 3 (second if condition arr[i] >secondLargest )

  • If the current value is smaller than largest and greater than secondLargest then the current value becomes secondLargest.

Sample code in Java

public class SecondLargest {
     
    	public static void main(String[] args) {
     
    		int arr[] = { 24, 56, 57, 105, 102, 62, 58, 46, 76, 95 };
    		int largest = arr[0];
    		int secondLargest = arr[0];
    		
    		System.out.println("The given array is:" );
    		for (int i = 0; i < arr.length; i++) {
    			System.out.print(arr[i]+"\t");
    		}
    		for (int i = 0; i < arr.length; i++) {
     
    			if (arr[i] > largest) {
    				secondLargest = largest;
    				largest = arr[i];
     
    			} else if (arr[i] > secondLargest) {
    				secondLargest = arr[i];
     
    			}
    		}
     
    		System.out.println("\nSecond largest number is:" + secondLargest);
     
    	}
    }

Output

The given array is:
24	56	57	105	 102  62  58  46  76  95	
Second largest number is:102


Related Searches to Java program to find second largest number in an array ?