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.

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");
   	 }
 }


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

GATE CS Corner    Company Wise Coding Practice

Recommended Posts:







Writing code in comment? Please use ide.geeksforgeeks.org, generate link and share the link here.