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 : 01 Sep, 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 the last element in arr[]. If an element is found at the last position, return it. Else recur elmntSrch() for remaining array and element x.
 

Attention reader! All those who say programming isn't for kids, just haven't met the right mentors yet. Join the  Demo Class for First Step to Coding Coursespecifically designed for students of class 8 to 12. 

The students will get to learn more about the world of programming in these free classes which will definitely help them in making a wise career choice in the future.

C++




/*
 * Approach : The idea is to compare x with the last element in arr[].
 * If an element is found at the last position, return it.
 * Else recur elmntSrch() for remaining array and element x.
 */
 
#include <iostream>
 
using namespace std;
 
// Recursive function to search x in arr[]
int elmntSrch(int arr[], int size, int x) {
    int rec;
 
    size--;
 
    if (size >= 0) {
        if (arr[size] == x)
            return size;
        else
            rec = elmntSrch(arr, size, x);
    }
    else
        return -1;
 
    return rec;
}
 
int main(void) {
    int arr[] = {12, 34, 54, 2, 3};
    int size = sizeof(arr) / sizeof(arr[0]);
    int x = 3;
    int indx;
 
      indx = elmntSrch(arr, size, x);
 
    if (indx != -1)
        cout << "Element " << x << " is present at index " << indx << endl;
    else
        cout << "Element " << x << " is not present" << endl;
 
    return 0;
}
 
// This code is contributed by Manish Kumar (mkumar2789)

C




/*
 * Approach : The idea is to compare x with the last element in arr[].
 * If an element is found at the last position, return it.
 * Else recur elmntSrch() for remaining array and element x.
 */
 
#include <stdio.h>
 
// Recursive function to search x in arr[]
int elmntSrch(int arr[], int size, int x) {
    int rec;
 
    size--;
 
    if (size >= 0) {
        if (arr[size] == x)
            return size;
        else
            rec = elmntSrch(arr, size, x);
    }
    else
        return -1;
 
    return rec;
}
 
int main(void) {
    int arr[] = {12, 34, 54, 2, 3};
    int size = sizeof(arr) / sizeof(arr[0]);
    int x = 3;
    int indx;
 
    indx = elmntSrch(arr, size, x);
 
    if (indx != -1)
        printf("Element %d is present at index %d", x, indx);
    else
        printf("Element %d is not present", x);
 
    return 0;
}
 
// This code is contributed by Manish Kumar (mkumar2789)

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

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
 




My Personal Notes arrow_drop_up
Recommended Articles
Page :