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

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 ` ` `  `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 ` ` `  `/* 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 `

/div>

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

 ` `

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

This article is attributed to GeeksforGeeks.org

## tags:

School Programming Searching Searching

code

load comments