Skip to content
Related Articles
Recursive program to linearly search an element in a given array
• Difficulty Level : Basic
• Last Updated : 22 Mar, 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 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);``    ``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);``    ``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`

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

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with industry experts, please refer Geeks Classes Live

My Personal Notes arrow_drop_up