Recursive program to linearly search an element in a given array using C


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. Program :

/* 

 * 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 <stdio.h>
 
// 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[0]);

    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;
}
Output:

Element 3 is present at index 4
       

Advertisements

ads