Separate 0s and 1s in an array

Problem :

Given an array of 0’s and 1’s in random order , you need to separate 0’s and 1’s in an array.
For example:

Solution :

Solution 1:

  • Count number of 0’s in the array. Lets say we get X 0’s
  • Once we get the count, put X 0’s in the array and put (n-X) 1’s in the latter part of array.
Java code:
Time Complexity : O(N)

Solution 2:


Lets say array is arr[]

  • Initialise two index variable , left=0 and right=arr.length-1
  • Increment left variable until you get 1’s.
  • Decrement right variable until you get 0’s
  • If left < right, swap arr[left] and arr[right]
  • In the end, you will see that you have 0’s on left side and 1’s on right side.

Java code:

Java code to separate odd and even numbers in an array :

when you run above program, you will get below output:

Add Comment