How to sort an array of 0, 1 and 2 values with while loop and switch in Java

1 Answer

0 votes
public class MyClass {
    public static int swap(int a, int b) {
        return a;
    }
  
    static void sort(int arr[]) { 
        int start = 0; 
        int end = arr.length - 1; 
        int mid = 0;
          
        while (mid <= end) { 
            switch (arr[mid]) { 
                case 0: { 
                    arr[start] = swap(arr[mid], arr[mid] = arr[start]);
                    start++; 
                    mid++; 
                    break; 
                } 
                case 1: {
                    mid++; 
                    break;
                }
                case 2: { 
                    arr[mid] = swap(arr[end], arr[end] = arr[mid]);
                    end--; 
                    break; 
                } 
            } 
        } 
    } 
      
    public static void main(String args[]) {
        int arr[] = {2, 1, 0, 0, 1, 2, 2, 1, 1, 2};
  
        sort(arr); 
  
        for(int i = 0; i < arr.length; i++)   
            System.out.print(arr[i] + " ");
    }
}
  
  
  
/*
  
0 0 1 1 1 1 2 2 2 2 
  
*/

 



answered Apr 30, 2019 by avibootz
edited Apr 30, 2019 by avibootz
...