Java >> Tutoriel Java >  >> Java

Trouver le deuxième plus grand nombre dans le tableau Java

Trouver le deuxième plus grand nombre dans le tableau Java | Programmes de tableau en Java – 14 | Dans le programme Java précédent, nous avons développé des programmes pour trouver le plus grand nombre dans un tableau et trouver le plus petit nombre dans un tableau. Voyons maintenant comment trouver le deuxième plus grand nombre dans le tableau Java. Ou, comment trouver la deuxième valeur maximale dans le tableau Java ?

Description du programme :- Écrivez un programme Java pour trouver le deuxième plus grand nombre en Java.

Procédure pour développer la méthode pour trouver le deuxième plus grand nombre dans Java Array,

a) Prenez un tableau à une dimension (supposez que la variable de tableau est arr )
b) Déclarer une variable fmax et smax
c) Attribuez le premier élément du tableau aux deux variables, c'est-à-dire fmax =arr[0] ; smax =arr[0];
d) Itérer sur tous les éléments du tableau à l'aide de la boucle
e) Vérifier que le ième élément du tableau est supérieur à fmax ?
f) Si oui, alors mettez à jour smax =fmax variable et fmax =arr[i]
g) Sinon si, le ième élément du tableau est supérieur à smax ?
h) Puis mettez à jour smax =arr[i]
i) Répéter (e) à (h) jusqu'à la fin du tableau.
j) Renvoie smax

Méthode pour trouver le deuxième plus grand nombre dans un tableau 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;
}

Au début, nous supposons que le premier élément du tableau est le premier et le deuxième plus grand nombre, puis le comparons avec les éléments restants. Si un élément est plus grand que le premier plus grand nombre, alors le plus grand nombre précédent devient le deuxième plus grand nombre et le nombre actuel devient le premier plus grand nombre. Sinon, si l'élément actuel est seulement supérieur au deuxième plus grand nombre et non supérieur au premier plus grand nombre, alors l'élément actuel sera le deuxième plus grand nombre. Continuez ce processus jusqu'à la fin du tableau.

En utilisant la méthode ci-dessus, développons un programme Java pour trouver le deuxième plus grand nombre dans le tableau Java. Nous prendrons l'entrée du tableau de l'utilisateur final, d'abord, nous demanderons d'entrer la taille du tableau, puis d'entrer les éléments du tableau.

Pour recueillir les commentaires de l'utilisateur final, nous utiliserons la classe Scanner, mais vous pouvez également utiliser la classe BufferedReader. Après avoir trouvé le deuxième plus grand nombre dans le tableau donné, nous afficherons le résultat.

Programme Java pour trouver le nombre le plus grand ou maximum dans le tableau

Programme pour trouver le deuxième plus grand nombre dans le tableau Java en prenant les valeurs d'entrée de l'utilisateur final.

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();
  }
}

Sortie pour les différents cas de test :-

Entrez la longueur du tableau :5
Entrez les éléments du tableau :
25 10 35 15 45
Deuxième plus grand élément =35

Entrez la longueur du tableau :5
Entrez les éléments du tableau :
-30 -50 10 -20 -35
Deuxième plus grand élément =-20

Dans ce programme pour trouver le deuxième plus grand nombre dans le tableau Java, nous avons d'abord créé un objet de classe Scanner pour obtenir les valeurs d'entrée de l'utilisateur final. Ensuite, la longueur du tableau et les éléments du tableau sont demandés à l'utilisateur final et stockés dans des variables appropriées. Sur ce tableau, nous avons appelé la méthode secondLargest().

Remarque :- La logique écrite pour trouver le deuxième plus grand nombre du tableau ne fonctionnera pas si le tableau contient des éléments en double. Nous devons donc d'abord supprimer les doublons du tableau, puis nous devons trier ce tableau afin de trouver le deuxième plus grand nombre correct.


Balise Java