Java >> Java tutorial >  >> Java

Find næststørste nummer i Array Java

Find næststørste nummer i Array Java | Array-programmer i Java – 14 | I det tidligere Java-program udviklede vi programmer til at finde det største tal i en matrix og finde det mindste tal i en matrix. Lad os nu se, hvordan man finder det næststørste tal i array Java. Eller hvordan finder man den anden maksimale værdi i array Java?

Programbeskrivelse:- Skriv et Java-program for at finde det næststørste tal i Java.

Procedure til at udvikle metoden til at finde det næststørste tal i Java Array,

a) Tag en endimensionel matrix (antag matrixvariabel som arr )
b) Angiv en variabel fmax og smax
c) Tildel det første element i arrayet til begge variable, dvs. fmax =arr[0]; smax =arr[0];
d) Iterér gennem alle elementer i arrayet ved hjælp af løkken
e) Kontroller, at det ith-element i arrayet er større end fmax ?
f) Hvis ja, så opdater smax =fmax variabel og fmax =arr[i]
g) Ellers hvis det ith-element i arrayet er større end smax ?
h) Opdater derefter smax =arr[i]
i) Gentag (e) til (h) indtil slutningen af ​​arrayet.
j) Returner smax

Metode til at finde næststørste tal i Array Java

// Java method to find second largest 
// number in array
public static int secondlargest(int[] arr) {
    
  // declare variables
  int fmax = 0; // first largest
  int smax = 0; // second largest

  // assign first element to fmax, smax
  fmax = arr[0];
  smax = arr[0];

  // compare with remaining elements
  for (int i = 1; i < arr.length; i++) {
    if (fmax < arr[i]) {
      smax = fmax;
      fmax = arr[i];
    } else if(smax < arr[i]) {
      smax = arr[i];
    }
  }

  // return second largest number
  return smax;
}

I starten antager vi, at det første element i arrayet er det første og næststørste tal, og sammenligner det derefter med de resterende elementer. Hvis et element er større end det første største tal, bliver det tidligere største tal et næststørste tal, og det aktuelle tal bliver det første største tal. Ellers hvis det aktuelle element kun er større end det næststørste tal, ikke større end det første største tal, vil det aktuelle element være det næststørste tal. Fortsæt denne proces indtil slutningen af ​​arrayet.

Ved at bruge ovenstående metode, lad os udvikle et Java-program til at finde det næststørste tal i array Java. Vi tager array-input fra slutbrugeren, først vil vi bede om at indtaste størrelsen på arrayet og derefter indtaste array-elementerne.

For at modtage input fra slutbrugeren vil vi bruge Scanner-klassen, men du kan også bruge BufferedReader-klassen. Efter at have fundet det næststørste tal i det givne array vil vi vise resultatet.

Java-program til at finde det største eller maksimale antal i array

Program til at finde det næststørste tal i array Java ved at tage inputværdier fra slutbrugeren.

import java.util.Scanner;

public class ArrayProgram {

  // method to find second largest number in array
  public static int secondLargest(int[] arr) {
    
    // declare variables
    int fmax = 0; 
    int smax = 0; 

    // assign first element to fmax, smax
    fmax = arr[0];
    smax = arr[0];

    for (int i = 1; i < arr.length; i++) {
      if (fmax < arr[i]) {
        smax = fmax;
        fmax = arr[i];
      } else if(smax < arr[i]) {
        smax = arr[i];
      }
    }

    return smax;
  }
  
  // main method
  public static void main(String[] args) {
    // create Scanner class object to read input
    Scanner scan = new Scanner(System.in);

    // declare variables
    int length = 0;
    int numbers[] = null;

    // take length of the array
    System.out.print("Enter length of the array: ");
    length = scan.nextInt();

    // create array
    numbers = new int[length];

    // take array inputs
    System.out.println("Enter array elements: ");
    for (int i = 0; i < numbers.length; i++) {
      numbers[i] = scan.nextInt();
    }

    // method call
    System.out.println("Second largest element = " 
                         + secondLargest(numbers));

    // close Scanner
    scan.close();
  }
}

Output for de forskellige test-cases:-

Indtast længden af ​​arrayet:5
Indtast arrayelementer:
25 10 35 15 45
Andet største element =35

Indtast længden af ​​arrayet:5
Indtast array-elementer:
-30 -50 10 -20 -35
Andet største element =-20

I dette program for at finde det næststørste tal i array Java, oprettede vi først et Scanner-klasseobjekt for at få inputværdier fra slutbrugeren. Derefter akses længden af ​​array og array-elementer fra slutbrugeren og lagres i passende variabler. På dette array kaldte vi metoden secondLargest().

Bemærk:- Logik skrevet til at finde det næststørste tal fra arrayet vil ikke fungere, hvis arrayet indeholder duplikerede elementer. Så vi skal først fjerne dubletter fra arrayet, og derefter skal vi sortere arrayet for at finde ud af det korrekte næststørste tal.


Java tag