Recursive Binary Search Algorithm Pseudocode

Binary Search is a searching algorithm. It searches for an element in a sorted array in O(LogN).

In this article, we will discuss the principle behind Binary Search and the Pseudo code for recursive Binary Search.

First, assume that the array is sorted in Ascending order.

Binary Search is based on the principle that if an element X is smaller than array[i], then X is smaller than array[j] for all j >i.

Similarly, if an element X is greater than array[i] then X is greater than array[j] for all j < i.

Now, let’s talk about the case when array is sorted in descending order.

If X is smaller than array[i], then X is smaller than array[j] for all j < i.

Similarly, if X is greater than array[i], then X is also greater than array[j] for all j > i.

Recursive Binary Search Algorithm Pseudo code (Ascending Order)

array: array sorted in ascending order
start: first index of array
end: last index of array
x: search value

FUNCTION binary_search ( array , start , end , x )

	WHILE start < end DO
	
		mid := ( start + end ) / 2
		
		IF x == array[mid] THEN
			RETURN mid
		ELSE IF x > array[mid] THEN
			RETURN binary_search( array , mid + 1 , end , x )
		ELSE
			RETURN binary_search( array , start , mid - 1 , x )
			
	END WHILE
	
END FUNCTION

Recursive Binary Search Algorithm Pseudo code (Descending Order)

array: array sorted in ascending order
start: first index of array
end: last index of array
x: search value

FUNCTION binary_search ( array , start , end , x )

	WHILE start < end DO
	
		mid := ( start + end ) / 2
		
		IF x == array[mid] THEN
			RETURN mid
		ELSE IF x < array[mid] THEN
			RETURN binary_search( array , mid + 1 , end , x )
		ELSE
			RETURN binary_search( array , start , mid - 1 , x )
			
	END WHILE
	
END FUNCTION

What to Study next?

  1. Ternary Search
  2. Why Binary Search is preferred Over Ternary Search

Leave Comment if You have Any Query

2 thoughts on “Recursive Binary Search Algorithm Pseudocode”

Leave a Comment

Your email address will not be published. Required fields are marked *