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