Skip to content
Related Articles

Related Articles

Improve Article
Recursive program to linearly search an element in a given array
  • Difficulty Level : Basic
  • Last Updated : 22 Mar, 2021

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. 
 

Approach : 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++




// Recursive C++ program
// to search x in array
#include<bits/stdc++.h>
 
using namespace std;
 
// 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;
    if (arr[r] == x)
        return r;
    return recSearch(arr, l + 1,
                          r - 1, x);
}
 
// Driver Code
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)
    cout << "Element " << x
         << " is present at index "
         << index;
    else
        cout << "Element" << x
             << " is not present" ;
    return 0;
}
 
// This code is contributed
// by Shivi_Aggarwal

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;
     if (arr[r] == x)
        return r;
     return recSearch(arr, l+1, r-1, 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;
          if (arr[r] == x)
             return r;
          return recSearch(arr, l+1, r-1, 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
    if arr[r] == x:
        return r
    return recSearch(arr, l+1, r-1, 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

C#




// Recursive C# program to
// search x in array
using System;
 
static 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;
        if (arr[r] == x)
            return r;
        return recSearch(arr, l+1, r-1, 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)
        Console.Write("Element " + x +
                      " is present at index " + index);
        else
            Console.Write("Element " + x +
                          " is not present");
        }
}
 
// This code is contributed by Smitha Dinesh Semwal

PHP




<?php
// Recursive PHP program to
// search x in array
 
// Recursive function to
// search x in arr[l..r]
function recSearch($arr, int $l,
                   int $r, int $x)
{
    if ($r < $l)
        return -1;
    if ($arr[$l] == $x)
        return $l;
    if ($arr[$r] == $x)
        return $r;
     return recSearch($arr, $l+1, $r-1, $x);
}
 
    // Driver Code
    $arr = array(12, 34, 54, 2, 3); $i;
    $n = count($arr);
    $x = 3;
    $index = recSearch($arr, 0, $n - 1, $x);
    if ($index != -1)
    echo "Element"," ", $x," ",
         "is present at index ", $index;
    else
        echo "Element is not present", $x;
 
// This code is contributed by anuj_67.
?>

Javascript




<script>
// Recursive Javascript program to 
// search x in array
   
// Recursive function to 
// search x in arr[l..r] 
function recSearch(arr, l, r, x)
{
    if (r < l)
        return -1;
    if (arr[l] == x)
        return l;
    if (arr[r] == x)
        return r;
     return recSearch(arr, l+1, r-1, x);
}
   
    // Driver Code
    let arr = [12, 34, 54, 2, 3];
    let i;
    let n = arr.length;
    let x = 23;
    let index = recSearch(arr, 0, n - 1, x);
 
    if (index != -1){
      document.write(`Element ${x} is present at index ${index}`);
    }
    else{
        document.write("Element is not present " + x);
    }
   
// This code is contributed by _saurabh_jaiswal.
</script>

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
 

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced 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.

In case you wish to attend live classes with industry experts, please refer Geeks Classes Live




My Personal Notes arrow_drop_up
Recommended Articles
Page :