Basically, binary search performer classic binary nature of element to find target element to make search successful. When we find some element in given list or data, if we have some information about how the data/list is arranged, would help us to find data faster using b-search(Binary Search).

Source: Rohit kanyal.

Using the different condition to find elements in searching element in give data/list. As discussed in early articles about recursion, we can straight forwardly used recursion b-search to get our desired output. The idea is simple:

Steps Following:

  1. Pick an index, i, that divides the list L roughly in half.
  2. Ask if L[i] ==e.
  3. If not, ask whether L[i] is larger or smaller than e.
  4. Depending upon the answer, search either the left or right half of L for e.

This is an example of divide-and-conquer algorithm.

Python3 Program for recursive binary search.

Returns index of x in arr if present, else -1

def binarySearch(arr, l, r, x):

Check base case

if r >= l:

mid = l + (r - l) // 2

If element is present at the middle itself

if arr[mid] == x:

return mid

If element is smaller than mid, then it

can only be present in left subarray

elif arr[mid] > x:

return binarySearch(arr, l, mid-1, x)

Else the element can only be present

Binary Search to Find Data on Web.

in right subarray

	else:
		return binarySearch(arr, mid + 1, r, x)
else:
	# Element is not present in the array
	return -1

Driver Code

arr = [2, 3, 4, 10, 40] x = 10

Function call

result = binarySearch(arr, 0, len(arr)-1, x) if result != -1: print("Element is present at index % d" % result) else: print("Element is not present in array")