top button
Flag Notify
    Connect to us
      Site Registration

Site Registration

How can we sort an array having binary values using Java or C?

+3 votes
434 views
How can we sort an array having binary values using Java or C?
posted Jun 4, 2015 by anonymous

Share this question
Facebook Share Button Twitter Share Button LinkedIn Share Button

1 Answer

0 votes

A binary array is an array of 0s and 1s. There are a number of ways to do this. One of them is given below

Start from both ends of the array and swap 1s from left to 0s in right until reach the middle of the array

/**
* Does an in-place sort of the given binary array
*
* @param toSort
*/

 public static void sortBinaryArray(int[] toSort) {
int begin = 0;
int end = toSort.length - 1;
while (begin < end) {
  // If find 0 at left, keep moving
  if (0 == toSort[begin]) {
    begin++;

  }
  // if a 1 occurs at left, move from right until find a zero
  else if (1 == toSort[end]) {
    end--;
  }
  // Here we found a 1 at left and 0 at right, so swap
  else {
    toSort[begin] = 0;
    toSort[end] = 1;
    }
  }
}

Driver code

public static void main(String[] args) {
int[] bin = new int[] { 1, 1, 0, 0, 0, 1, 1, 1, 1, 1 };
sortBinaryArray(bin);
System.out.println(Arrays.toString(bin));
  }

Output

[0, 0, 0, 1, 1, 1, 1, 1, 1, 1]

answer Jun 16, 2015 by Mohammed Hussain
...