public void findMinUnsortedSubArray(int[] a) {
		
		/* STEP #1: Find first "unsorted" element from left */
		int s = 0;
		for (; s < a.length; s++) {
			if (a[s] > a[s + 1]) {
				break;
			}
		}
				
		if (s == a.length) {
			System.out.println("Array is fully sorted!");
			return;
		}
		
		/* STEP #2: Find first "unsorted" element from right */
		int e = a.length - 1;
		for (; e > 0; e--) {
			if (a[e] < a[e - 1]) {
				break;
			}
		}
		
		/* STEP #3: Find min and max elements in the above range */
		int min = findMin(a, s, e);
		int max = findMax(a, s, e);
		
		
		/* STEP #4: Find first element from left lower than min */
		for (int i = 0; i < a.length; i++) {
			if (a[i] > min) {
				s = i;
				break;
			}
		}
		
		/* STEP #5: Find first element from right higher than max */
		for (int i = a.length - 1; i >= 0; i--) {
			if (a[i] < max) {
				e = i;
				break;
			}
		}

		System.out.printf("S: %d E: %d\n", s, e);
		
	}