Java >> Tutoriel Java >  >> Java

Programme pour séparer les 0 à gauche et les 1 à droite

Dans ce didacticiel, nous apprendrons à séparer les 0 sur le côté gauche et les 1 sur le côté droit du tableau. 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 : 0 0 1 1 0 1 0 1 1 0 1 1 1

Sortie : 0 0 0 0 0 1 1 1 1 1 1 1 1

Programme 1 :Séparez les 0 sur le côté gauche et les 1 sur le côté droit

Dans cette méthode, nous verrons comment séparer les 0 à gauche et les 1 à droite du tableau en utilisant la technique du tri.

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. Vérifiez si les éléments saisis sont 0 et 1 ou non.
  7. Si les éléments saisis sont autres que 0 et 1, demandez à l'utilisateur de saisir à nouveau.
  8. Si les éléments saisis sont 0 et 1, triez le tableau à l'aide de arrays.sort()
  9. Ce tri conservera les 0 à gauche et les 1 à droite.
  10. Imprime le tableau trié.
  11. Arrêtez.

Le programme ci-dessous montre comment séparer les 0 sur le côté gauche et les 1 sur le côté droit du tableau en utilisant la technique de tri.

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


Entrez le nombre total d'éléments 10
Entrez les éléments du tableau 0 0 1 1 1 1 1 0 0 0
Le tableau résultant est
0 0 0 0 0 1 1 1 1 1

Programme 2 :Séparez les 0 sur le côté gauche et les 1 sur le côté droit

Dans cette méthode, nous verrons comment séparer les 0 sur le côté gauche et les 1 sur le côté droit du tableau en utilisant la technique de ségrégation.

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. Vérifiez d'abord si les éléments saisis sont 0 et 1 ou non.
  7. Si les éléments saisis sont autres que 0 et 1, demandez à l'utilisateur de saisir à nouveau.
  8. Si les éléments saisis sont 0 et 1, déclarez une variable pour compter le nombre total de zéros.
  9. Utilisez une boucle for pour parcourir chaque élément du tableau.
  10. Incrémenter le décompte partout où 0 est trouvé.
  11. Maintenant, remplissez la boucle avec des 0 jusqu'au décompte.
  12. Remplissez les éléments restants du tableau avec des 1.
  13. Arrêter

Le programme ci-dessous montre comment séparer les 0 sur le côté gauche et les 1 sur le côté droit du tableau en utilisant la technique de ségrégation.

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


Entrez le nombre total d'éléments 10
Entrez les éléments du tableau 0 0 1 1 1 0 1 1 0 0
Le tableau résultant est
0 0 0 0 0 1 1 1 1 1


Balise Java