Java >> Java tutorial >  >> Java

Java-program til at finde, om et givet heltal X optræder mere end N/2 gange i et array

I denne tutorial lærer vi, hvordan man finder ud af, om et givet heltal X optræder mere end N/2 gange i en sorteret matrix af N heltal. Men før du går videre, hvis du ikke er bekendt med begreberne for arrayet, så tjek artiklen Arrays in Java.

Input:

Array:4 5 3 6 2 3 1 7

Søgeelement:3

Output:

3 forekommer ikke mere end 4 gange.

Program 1:For at finde ud af, om et givet heltal X optræder mere end N/2 gange i et sorteret array af N heltal.

I denne tilgang vil vi se, hvordan man finder ud af, om et givet heltal X optræder mere end N/2 gange i en sorteret Array af N heltal ved at bruge sløjfer. Logikken bag at bruge denne tilgang er, at vi tæller forekomsten af ​​elementet i det sorterede array og derefter sammenligner det med n/2-værdien. En ting at huske på er, at hvis vi først skal sortere arrayet, før vi tæller forekomsten af ​​elementet. Dette vil gøre vores opgave meget lettere, da if-elementet, der skal søges i, vil være i tilstødende position, hvilket vil gøre vores opgave med at tælle forekomsten af ​​den variabel lettere.

Algorithme

  1. Start
  2. Deklarer matrixstørrelsen.
  3. Bed brugeren om at initialisere matrixstørrelsen.
  4. Deklarer arrayet.
  5. Bed brugeren om at initialisere array-elementerne.
  6. Sortér arrayet ved at sammenligne og bytte array.
  7. Udskriv det sorterede array.
  8. Indtast det element, hvis frekvens du vil kontrollere.
  9. Brug af to til sløjfer gennemløber alle elementerne i arrayet og tæller frekvensen af ​​elementet.
  10. Den første for-løkke bruges til at holde array-elementerne.
  11. Den anden for loop bruges til at kontrollere for de resterende array-elementer.
  12. Ved at bruge en if-løkke kontrolleres det, om elementet er opstået tidligere eller ej.
  13. Hvis elementet er opstået tidligere, skal du øge tællevariablen.
  14. Hvis elementet er opstået mere end n/2 gange, så udskriv meddelelsen om, at elementet er opstået mere end n/2 gange.
  15. Hvis elementet ikke er opstået mere end n/2 gange, så udskriv meddelelsen om, at elementet ikke er opstået mere end n/2 gange.
  16. Stop.

Nedenfor er koden til det samme.

Nedenstående program viser, hvordan man finder ud af, om et givet heltal X optræder mere end N/2 gange i et sorteret array af N heltal ved hjælp af loops.

/* 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");
        }    
        
    }   
}


Indtast Array Size 5
Indtast Array-elementerne 6 7 5 4 3 5 6 9 6 6
Sorteret Array:3 4 5 5 6 6 6 6 7 9
Indtast element, som du vil kontrollere:6
Givt heltal 6 vises ikke mere end 5 gange


Java tag