Skip to content
Related Articles

Related Articles

Java Program To Recursively Linearly Search An Element In An Array
  • Last Updated : 17 Mar, 2021

Given an array arr[] of n elements, write a function to recursively search a given element x in arr[].

Illustration:

Input  : arr[] = {25, 60, 18, 3, 10}
Output : Element to be searched : 3


Input  : arr[] = {10,20,30,24,15,40}
Output : -1
For x = 35
Element x is not present in arr[]

Procedure:

The idea is to search the element from both the sides of array recursively. If the element that needs to searched matches with the leftmost element of the left boundary, or it matches with the rightmost element of the right boundary, directly return the position of the element, else recur for the remaining array to search for the element with the value same as x.

Example

Java




// Java Program to Search an element in an Array Recursively
  
// Main class
public class GFG {
  
    // Method 1
    // Recursive method to search for an element and
    // its index in the array
    static int recursiveSearch(int arr[], int l, int r,
                               int x)
    {
  
        // if r<l,it means that element is not present in
        // the array
        if (r < l)
            return -1;
  
        if (arr[l] == x)
            return l;
  
        if (arr[r] == x)
            return r;
  
        // Since element has not found on both left most and
        // rightmost boundary,ie at l and r, now recurse the
        // array to find position of x.
        return recursiveSearch(arr, l + 1, r - 1, x);
    }
  
    // Method 2
    // Main driver method
    public static void main(String[] args)
    {
        // Element to be seaarched for
        // Custom input number
        int x = 3;
  
        // Declaring and initializing the integer array
        int arr[] = new int[] { 25, 60, 18, 3, 10 };
  
        // Calling the above recursive method method to
        // search for the element in the array
  
        // Recursive function is called over array to
        // get the index of the element present in an array
        int index
            = recursiveSearch(arr, 0, arr.length - 1, x);
  
        // If index is found means element exists
        if (index != -1)
  
            // Print the element and its index
            System.out.println("Element " + x
                               + " is present at index "
                               + index);
  
        // If we hit else case means
        // element is not present in the array
        else
  
            // Simply display the corresponding element
            // is not present
            System.out.println("Element " + x
                               + " is not present");
    }
}
Output
Element 3 is present at index 3

Attention reader! Don’t stop learning now. Get hold of all the important Java Foundation and Collections concepts with the Fundamentals of Java and Java Collections Course at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.




My Personal Notes arrow_drop_up
Recommended Articles
Page :