C Program to search an element in an Array using Binary Search (Recursive Approach)

 


// Program by Akash Tripathi (@proakash256) 
 
#include <stdio.h>
int binary_search(int startint last,
                  int elementint *arr)
{
    int middle;
    if (start > last)
    {
        return -1;
    }
    middle = (start + last) / 2;
    if (arr[middle] == element)
    {
        return middle;
    }
    else if (element > arr[middle])
    {
        start = middle + 1;
        return binary_search(startlastelementarr);
    }
    else if (element < arr[middle])
    {
        last = middle - 1;
        return binary_search(startlast,
                             elementarr);
    }
}
int main()
{
    int ns;
    printf("Enter the number of elements
            you want to enter in the array : ");
    scanf("%d", &n);
    int arr[n];
    printf("\nEnter the elements :\n");
    for (int i = 0i < ni = i + 1)
        scanf("%d", &arr[i]);
    for (int i = 0i < (n - 1); i = i + 1)
    {
        for (int j = 0j < (n - 1 - i); j = j + 1)
        {
            if (arr[j] > arr[j + 1])
            {
                arr[j] = arr[j] + arr[j + 1];
                arr[j + 1] = arr[j] - arr[j + 1];
                arr[j] = arr[j] - arr[j + 1];
            }
        }
    }
    printf("\nThe Sorted array in
            ascending order is :\n");
    for (int i = 0i < ni = i + 1)
        printf("%d\n"arr[i]);
    int start = 0last = (n - 1), middlepos = -1;
    printf("\nEnter the element that you
            want to search in the array : ");
    scanf("%d", &s);
    pos = binary_search(startlastsarr);
    if (pos != -1)
        printf("\nThe element %d is at
                position %d\n\n"s, (pos + 1));
    else
        printf("\nValue Not Found.\n\n");
    return 0;
}

Comments