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
- Démarrer
- Déclarez la taille du tableau.
- Demandez à l'utilisateur d'initialiser la taille du tableau.
- Déclarez le tableau.
- Demandez à l'utilisateur d'initialiser les éléments du tableau.
- Vérifiez si les éléments saisis sont 0 et 1 ou non.
- Si les éléments saisis sont autres que 0 et 1, demandez à l'utilisateur de saisir à nouveau.
- Si les éléments saisis sont 0 et 1, triez le tableau à l'aide de arrays.sort()
- Ce tri conservera les 0 à gauche et les 1 à droite.
- Imprime le tableau trié.
- 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
- Démarrer
- Déclarez la taille du tableau.
- Demandez à l'utilisateur d'initialiser la taille du tableau.
- Déclarez le tableau.
- Demandez à l'utilisateur d'initialiser les éléments du tableau.
- Vérifiez d'abord si les éléments saisis sont 0 et 1 ou non.
- Si les éléments saisis sont autres que 0 et 1, demandez à l'utilisateur de saisir à nouveau.
- Si les éléments saisis sont 0 et 1, déclarez une variable pour compter le nombre total de zéros.
- Utilisez une boucle for pour parcourir chaque élément du tableau.
- Incrémenter le décompte partout où 0 est trouvé.
- Maintenant, remplissez la boucle avec des 0 jusqu'au décompte.
- Remplissez les éléments restants du tableau avec des 1.
- 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