public class BinarySearch {
	
	// Returns index of 'searchValue' in 'arr' by using Binary Search
	static int binarySearch(int[] arr, int searchValue) {
	      int L = 0;
	      int R = arr.length - 1;

	      while (L <= R) {
		 int middleElementIndex = (L+R) / 2;

		 if (searchValue < arr[middleElementIndex]) {
			R = middleElementIndex - 1;
		 }
		 else if (searchValue > arr[middleElementIndex]) {
			L = middleElementIndex + 1;
		 }
		 else {
			 int searchValueIndex = middleElementIndex;
			 return searchValueIndex; 
		 }
	      }

	      return -1; // element is not present in the array
	}
	
	public static void main(String[] args) {
		int[] arr = new int[] { -1, 5, 6, 18, 19, 25, 46, 78, 102, 114 };
		
		System.out.println( 
			binarySearch(arr, 6) 
		);
	}
	
}