The below java program executes the java method – sortArrayElementsInBinaryFormat( ) to sort the received list into the Binary format of 0s and 1s in sequence.
Program Logic:
1. Pass the Array Element List to the method – sortArrayElementsInBinaryFormat( )
2. Traverse and identify the elements with 0 value
3. Move the elements with 0 value forward and elements with value 1 thereafter
4. Print the sorted binary array
Array Input : { 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0 }
Array Output: [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1]
/*
* Java Array Program to sort the received Array Binary Input of 0 and 1
* identify the elements with 0 value
* Move the elements with 0 value forward in the Array
* elements with 1 value to be placed after all 0s
* Input : { 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0 }
* Output: {0,0,0,0,0,1,1,1,1,1,1}
*/
package core.java.oracleappshelp.array;
import java.util.Arrays;
public class GenerateBinaryArray {
/* Method - sortArrayElementsInBinaryFormat
* Java Method to sort the received list into the Binary format of 0 and 1 in sequence.
*/
public static void sortArrayElementsInBinaryFormat(int[] arrayElements)
{
// identify the elements with 0 value
int elementWithZeroValue = 0;
for (int elementValue : arrayElements) {
if (elementValue == 0) {
elementWithZeroValue++;
}
}
// move the elements with 0 value forward and elements with value 1 thereafter
int elementLoop = 0;
while (elementWithZeroValue-- != 0) {
arrayElements[elementLoop++] = 0;
}
// fill all remaining elements by 1
while (elementLoop < arrayElements.length) {
arrayElements[elementLoop++] = 1;
}
}
// Sort binary array in linear time
public static void main (String[] args)
{
int[] arrayElementList = { 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0 };
sortArrayElementsInBinaryFormat(arrayElementList);
// print the sorted binary array
System.out.println(Arrays.toString(arrayElementList));
}
}
Java Array Program Output:
[0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1]