public static int binarySearchIterative(int[] a, int keyword) {
		// 
		int low = 0;
		int high = a.length-1;
		int mid = 0;
				
		while (low < high) {
			mid = (high - low)/2+low;
			if (a[mid]==keyword) {
				return mid;
			} else if (a[mid]<keyword) {
				low = mid+1;
			} else {
				high = mid-1; //using mid is also correct! 
			}
		}
		
		if (keyword == a[low]) {
			return low;
		} else {
			return -low-1;
		}
		
	}