Skip to content
Related Articles

Related Articles

Recursive program to linearly search an element in a given array
  • Difficulty Level : Basic
  • Last Updated : 09 Nov, 2020

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.
?>



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.




My Personal Notes arrow_drop_up
Recommended Articles
Page :