Thursday, 29 October 2015

Recursive C 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.
#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;
}
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

No comments:

Post a Comment