Recursive program to linearly search an element in a given array

1.3

Given an unsorted array and an element x, search x in given array. Write recursive C code for this. If element is not present, return -1.

The idea is to compare x with first element in arr[]. If element is found at first position, return it. Else recur for remaining array and x.

C

#include<stdio.h>

/* Recursive function to search x in arr[l..r] */
int recSearch(int arr[], int l, int r, int x)
{
     if (r < l)
        return -1;
     if (arr[l] == x)
        return l;
     return recSearch(arr, l+1, r, x);
}

int main()
{
    int arr[] = {12, 34, 54, 2, 3}, i;
    int n = sizeof(arr)/sizeof(arr[0]);
    int x = 3;
    int index = recSearch(arr, 0, n-1, x);
    if (index != -1)
       printf("Element %d is present at index %d", x, index);
    else
        printf("Element %d is not present", x);
    return 0;
}

Java

// Recursive Java program to search x in array
class Test
{
     static int arr[] = {12, 34, 54, 2, 3};
     
     /* Recursive Method to search x in arr[l..r] */
     static int recSearch(int arr[], int l, int r, int x)
     {
          if (r < l)
             return -1;
          if (arr[l] == x)
             return l;
          return recSearch(arr, l+1, r, x);
     }
     
     // Driver method
     public static void main(String[] args) 
     {
        int x = 3; 
        
        //Method call to find x
        int index = recSearch(arr, 0, arr.length-1, x);
        if (index != -1)
           System.out.println("Element " + x + " is present at index " + 
                                                    index);
        else
            System.out.println("Element " + x + " is not present");
        }
 }

Python


# Recursive function to search x in arr[l..r] 
def recSearch( arr, l, r, x):
    if r < l:
        return -1
    if arr[l] == x:
        return l
    return recSearch(arr, l+1, r, x)


# Driver Code 
arr = [12, 34, 54, 2, 3]
n = len(arr)
x = 3
index = recSearch(arr, 0, n-1, x)
if index != -1:
    print "Element", x,"is present at index %d" %(index)
else:
    print "Element %d is not present" %(x)

# Contributed By Harshit Agrawal


Output:
Element 3 is present at index 4

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above

GATE CS Corner    Company Wise Coding Practice

Recommended Posts:



1.3 Average Difficulty : 1.3/5.0
Based on 13 vote(s)










Writing code in comment? Please use ide.geeksforgeeks.org, generate link and share the link here.