public static void dutchFlagSort(int[] arr, int lowValue, int highValue) {
        int i =0 ;
        int j = arr.length - 1;
        int lP = 0;
        int hP = arr.length - 1;
        
        while(i <= j){
        	if(arr[i] > highValue){
        		if(arr[j] < lowValue){
        			swap(arr, i, j);
        			i++;
        			j--;
        		}
        		else if(arr[j] > lowValue){
        			j--;
        		}
        		else{
        			swap(arr, hP, j);
        			j--;
        			hP--;
        		}
        	}
        	else if(arr[i] < lowValue){
        		i++;
        	}
        	else{
        		swap(arr, i, lP);
        		lP++;
        		i++;
        	}
        }
        
        System.out.println("Before paritioning");
        for(int outputvalue : arr){
        	System.out.println(outputvalue);
        }
        int k = 0;
        while(k<lP){
        	swap(arr,k,j);
        	k++;
        	j--;
        }
        k = arr.length - 1;
        while(k>hP){
        	swap(arr,k,i);
        	k--;
        	i++;
        }
        
        System.out.println("After Partioning");
        
        for(int outputvalue : arr){
        	System.out.println(outputvalue);
        }
    }