Java >> Tutoriel Java >  >> Java

Programme Java pour trouver si un entier donné X apparaît plus de N/2 fois dans un tableau

Dans ce tutoriel, nous allons apprendre à savoir si un entier donné X apparaît plus de N/2 fois dans un tableau trié de N entiers. Mais avant d'aller plus loin, si vous n'êtes pas familier avec les concepts du tableau, alors consultez l'article Tableaux en Java.

Saisie :

Tableau :4 5 3 6 2 3 1 7

Élément de recherche :3

Sortie :

3 ne se produit pas plus de 4 fois.

Programme 1 :Pour trouver si un entier donné X apparaît plus de N/2 fois dans un tableau trié de N entiers.

Dans cette approche, nous verrons comment trouver si un entier donné X apparaît plus de N/2 fois dans un tableau trié de N entiers en utilisant des boucles. La logique derrière l'utilisation de cette approche est que nous comptons l'occurrence de l'élément dans le tableau trié, puis le comparons avec la valeur n/2. Une chose à garder à l'esprit est que si nous devons d'abord trier le tableau avant de compter l'occurrence de l'élément. Cela rendra notre tâche beaucoup plus facile car l'élément if qui doit être recherché sera dans une position adjacente, ce qui facilitera notre tâche de compter l'occurrence de cette variable.

Algorithme

  1. Démarrer
  2. Déclarez la taille du tableau.
  3. Demandez à l'utilisateur d'initialiser la taille du tableau.
  4. Déclarez le tableau.
  5. Demandez à l'utilisateur d'initialiser les éléments du tableau.
  6. Trier le tableau en comparant et en échangeant le tableau.
  7. Imprime le tableau trié.
  8. Entrez l'élément dont vous souhaitez vérifier la fréquence.
  9. À l'aide de deux boucles for, parcourez tous les éléments du tableau et comptez la fréquence de l'élément.
  10. La première boucle for est utilisée pour contenir les éléments du tableau.
  11. La deuxième boucle for est utilisée pour vérifier les éléments de tableau restants.
  12. L'utilisation d'une boucle if vérifie si l'élément s'est déjà produit ou non.
  13. Si l'élément s'est déjà produit, incrémentez la variable count.
  14. Si l'élément s'est produit plus de n/2 fois, imprimez le message indiquant que l'élément s'est produit plus de n/2 fois.
  15. Si l'élément ne s'est pas produit plus de n/2 fois, imprimez le message indiquant que l'élément ne s'est pas produit plus de n/2 fois.
  16. Arrêtez.

Vous trouverez ci-dessous le code correspondant.

Le programme ci-dessous montre comment déterminer si un entier donné X apparaît plus de N/2 fois dans un tableau trié de N entiers à l'aide de boucles.

/* Java Program to find the find if a given integer X appears more than N/2 times in a sorted Array of N integers using loops */

import java.util.*; 
  
public class Main 
{ 
    
    // Main driver method 
    public static void main(String args[]) 
    { 
  
        // Taking input from user 
        Scanner sc = new Scanner(System.in); 
        int n,x;     //Declaring Variables
        int count=0;     //declare the variable and initialize it to 0
        
        //Ask the user to enter the Array Size
        System.out.println("Enter the Array Size ");
        n=sc.nextInt();
        
        //Declare the array
        int arr[] = new int[n]; 
        System.out.println("Enter the Array elements ");
        for(int i=0;i<n;i++)   //Ask the user to initialize the array
        {
            arr[i]=sc.nextInt();
        }
        
        //Use a for loop to Sort the Array
        int temp;     //Temporary variable to hold the element
        System.out.print("Sorted Array: ");
        for(int i = 0; i < n; i++)    //Holds the array elements
        {
            for(int j = i + 1; j < n; j++)   //Checks for the remaining elements
            {
                if(arr[i] > arr[j])    //Check for the condition
                {
                    temp = arr[i];     //Sort by Swapping the variables
                    arr[i] = arr[j];
                    arr[j] = temp;
                }
            }
        }
        
        //Print the sorted array
        for(int i=0;i<n;i++)
        {
            System.out.print(arr[i]+" ");
        }
        System.out.println("");

         System.out.println("Enter the element which you want to check:");
        x = sc.nextInt();      //Element that you want to check
        for(int i = 0; i < n; i++)
        {
            if(arr[i] == x)
            {
                count++;      //Increment the count each time the variable is found
            }
        }

        //check whether the element has occurred for more than n/2 times 
        if(count > (n / 2))
        {
            System.out.println("Given Integer "+ x +" appears more than "+ n/2 + "times");
        }
        else
        {
            System.out.println("Given Integer "+ x +" does not appear more than "+ n/2 +" times");
        }    
        
    }   
}


Entrez la taille du tableau 5
Entrez les éléments du tableau 6 7 5 4 3 5 6 9 6 6
Array trié :3 4 5 5 6 6 6 6 7 9
Entrez le élément que vous voulez vérifier :6
Étant donné l'entier 6 n'apparaît pas plus de 5 fois


Balise Java