Recursive program to linearly search an element in a given array

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;
    return recSearch(arr, l + 1, 
                          r, 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;
     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

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;
        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)
        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;
    return recSearch($arr, $l + 1, $r, $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



My Personal Notes arrow_drop_up




Practice Tags :
Article Tags :

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.

Recommended Posts:



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






User Actions