Related Articles

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

## 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 ` `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);``    ``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 ` `// 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);``    ``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

 ``

## Javascript

 ``
Output
`Element 3 is present at index 4`

Output:

`Element 3 is present at index 4`