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; 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 |
chevron_right
filter_none
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; 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; } |
chevron_right
filter_none
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"); } } |
chevron_right
filter_none
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 = 3index = 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 |
chevron_right
filter_none
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 |
chevron_right
filter_none
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; if ($arr[$r] == $x) return $r; return recSearch($arr, $l+1, $r-1, $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. ?> |
chevron_right
filter_none
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.
Recommended Posts:
- C Program for Binary Search (Recursive and Iterative)
- Recursive function to do substring search
- Floor value Kth root of a number using Recursive Binary Search
- Repeatedly search an element by doubling it after every successful search
- Queries to search for an element in an array and modify the array based on given conditions
- Interpolation search vs Binary search
- Why is Binary Search preferred over Ternary Search?
- Sublist Search (Search a linked list in another list)
- Best First Search (Informed Search)
- Linear Search vs Binary Search
- Meta Binary Search | One-Sided Binary Search
- Program to count vowels in a string (Iterative and Recursive)
- Recursive program to print formula for GCD of n integers
- Recursive program to print triangular patterns
- Recursive Programs to find Minimum and Maximum elements of array
- Array formed from difference of each element from the largest element in the given array
- Search an element in given N ranges
- Search an element in a sorted and rotated array
- Search an element in an array where difference between adjacent elements is 1
- Search an element in an unsorted array using minimum number of comparisons

