Java >> Java tutorial >  >> Java

Programmer til at adskille 0'ere på venstre side og 1'ere på højre side

I denne tutorial lærer vi, hvordan man adskiller 0'er på venstre side og 1'ere på højre side af arrayet. Men før du går videre, hvis du ikke er bekendt med begreberne for arrayet, så tjek artiklen Arrays in Java.

Input: 0 0 1 1 0 1 0 1 1 0 1 1 1

Output: 0 0 0 0 0 1 1 1 1 1 1 1 1

Program 1:Adskil 0'ere på venstre side og 1'ere på højre side

I denne metode vil vi se, hvordan man adskiller 0'ere på venstre side og 1'ere på højre side af arrayet ved hjælp af sorteringsteknikken.

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. Tjek, om de indtastede elementer er 0 og 1 eller ej.
  7. Hvis de indtastede elementer er andre end 0 og 1, så bed brugeren om at indtaste igen.
  8. Hvis de indtastede elementer er 0 og 1, skal du sortere arrayet ved hjælp af arrays.sort()
  9. Denne sortering bevarer 0'erne i venstre side og 1'ere i højre side.
  10. Udskriv det sorterede array.
  11. Stop.

Nedenstående program viser, hvordan man adskiller 0'er på venstre side og 1'ere på højre side af arrayet ved hjælp af sorteringsteknikken.

import java.util.*;  
import java.util.Arrays; 
//Driver Code
public class Main  
{  
    static void printElements(int arr[],int n)
    {
        System.out.println("Resultant Array is ");
        for(int i=0;i<n;i++)
        {
            System.out.print(arr[i]+" ");
        }
        System.out.println(" ");
    }
   public static void main(String args[])   
   {  
       Scanner sc=new Scanner(System.in);
      int n;    //Declare array size
      System.out.println("Enter the total number of elements ");
      n=sc.nextInt();     //Initialize array size
      int arr[]=new int[n];   //Declare array
      System.out.println("Enter the elements of the array ");
      for(int i=0; i<n ;i++)     //Initialize array
      {
          arr[i]=sc.nextInt();
      }      
      int flag=1;      
        for(int t=0;t<n;t++)
        {
            if(arr[t]==0 || arr[t]==1)
            {
               Arrays.sort(arr);     //Sort the array
               flag++;
           }
          else
          {
                 flag=0;
          }
      }      
      if(flag==0)
      {
          System.out.println("Elements other than 0 and 1 are entered");
          System.out.println("Please Enter Valid Inputs ");
      }
      else{
          printElements(arr,n);
      }                 
   }
}


Indtast det samlede antal elementer 10
Indtast elementerne i arrayet 0 0 1 1 1 1 1 0 0 0
Resulterende array er
0 0 0 0 0 1 1 1 1 1

Program 2:Adskil 0'ere på venstre side og 1'ere på højre side

I denne metode vil vi se, hvordan man adskiller 0'er på venstre side og 1'ere på højre side af arrayet ved hjælp af segregationsteknikken.

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. Tjek først, om de indtastede elementer er 0 og 1 eller ej.
  7. Hvis de indtastede elementer er andre end 0 og 1, bed brugeren om at indtaste igen.
  8. Hvis de indtastede elementer er 0 og 1, så erklær en variabel for at tælle det samlede antal nuller.
  9. Brug en for-løkke til at iterere gennem hvert element i arrayet.
  10. Forøg antallet, hvor 0 er fundet.
  11. Fyld nu løkken med 0'er indtil tæller.
  12. Fyld de resterende elementer i arrayet med 1s.
  13. Stop

Nedenstående program viser, hvordan man adskiller 0'ere på venstre side og 1'ere på højre side af arrayet ved hjælp af segregationsteknikken.

import java.util.*;  
import java.util.Arrays; 

//Driver Code
public class Main  
{  
    static void printElements(int arr[],int n)
    {
        System.out.println("Resultant Array is ");
        for(int i=0;i<n;i++)
        {
            System.out.print(arr[i]+" ");
        }
        System.out.println(" ");
    }
   public static void main(String args[])   
   {  
       Scanner sc=new Scanner(System.in);

      int n;    //Declare array size
      System.out.println("Enter the total number of elements ");
      n=sc.nextInt();     //Initialize array size

      int arr[]=new int[n];   //Declare array
      System.out.println("Enter the elements of the array ");
      for(int i=0; i<n ;i++)     //Initialize array
      {
          arr[i]=sc.nextInt();
      }
      
      int flag=1;
      
        for(int t=0;t<n;t++)
        {
            if(arr[t]==0 || arr[t]==1)
            {
               // Counts the no of zeros in array 
               int count = 0; 
  
               // Iteration over each element of the array 
               for (int i = 0; i < n; i++) 
               { 
                    if (arr[i] == 0) 
                    count++;       // Incrementing the count 
               } 
  
             // Loop to fill the array with 0 until count 
             for (int i = 0; i < count; i++) 
             arr[i] = 0; 
  
             // Loop to fill the remaining array space with 1 
             for (int i = count; i < n; i++) 
                arr[i] = 1; 
             
           flag++;
          }
          else
          {
                 flag=0;
          }
      }
      
      if(flag==0)
      {
          System.out.println("Elements other than 0 and 1 are entered");
          System.out.println("Please Enter Valid Inputs ");
      }
      else
      {
          printElements(arr,n);
      }
      
   }
}


Indtast det samlede antal elementer 10
Indtast elementerne i arrayet 0 0 1 1 1 0 1 1 0 0
Resulterende array er
0 0 0 0 0 1 1 1 1 1


Java tag