How to segregate all 0 on left side and all 1 on right side of a given array of 0 and 1 in Java

1 Answer

0 votes
import java.util.Arrays;

public class MyClass {
    public static void main(String args[]) {
        int arr[] = {1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0};
        int left = 0, right = arr.length - 1;

        while (left < right) {
            while (arr[left] == 0 && left < right)
               left++; 
 
            while (arr[right] == 1 && left < right)
                right--;
 
            if (left < right) {
                arr[left] = 0;
                arr[right] = 1;
                left++;
                right--;
            }
        }
        System.out.println(Arrays.toString(arr));  
    }
}






/*
run:
 
[0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1]
 
*/

 



answered Aug 20, 2021 by avibootz
...