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

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

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`

# GATE CS Corner    Company Wise Coding Practice

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.
1.3 Average Difficulty : 1.3/5.0
Based on 13 vote(s)