Intuition

  • proceed till low is less than or equal to high
  • calculate mid by h + l / 2
  • if the cur mid is less than number to find, look in left half else in right half

Python code

# Iterative Binary Search Function
# It returns index of x in given array arr if present,
# else returns -1
def binary_search(arr, x):
	low = 0
	high = len(arr) - 1
	mid = 0
 
	while low <= high:
		mid = (high + low) // 2
		# If x is greater, ignore left half
		if arr[mid] < x:
			low = mid + 1
		# If x is smaller, ignore right half
		elif arr[mid] > x:
			high = mid - 1
		# means x is present at mid
		else:
			return mid
 
	# If we reach here, then the element was not present
	return -1
 
 
# Test array
arr = [ 2, 3, 4, 10, 40 ]
x = 10
 
# Function call
result = binary_search(arr, x)
 
if result != -1:
	print("Element is present at index", str(result))
else:
	print("Element is not present in array")
 

Attempt

function bs(nums, target) {
 /**
 * [1, 3, 5, 6, 9, 11]
 *
 */
 let l = 0;
 let r = nums.length/2;
 while(l<r) {
   let lVal = nums[l];
   let rVal = nums[r];
   if (lVal < target && target > rVal) {
   
   } else if (lVal > rVal) {
   
   } else if (lVal == target || rVal == target) {
     return ;
   }
 }
return false;
 
 
}