BINARY SEARCH CODE USING RECURSION IN C LANGUAGE

    #include<stdio.h>

// Simple and Smooth code on Binary search

int binarySearch(int a[],int min ,int max ,int element){

    if (max>=min)

    {

    int mid=(min + max)/2;

    if (a[mid]==element)

    {

        return (mid+1);

    }

    else

    {

        if (a[mid]>element)

        {

           return  binarySearch(a,min,mid-1,element);

        }

        else

        {

           return binarySearch(a,mid+1,max,element);

        }

    }

    }

    return -1;

}


int main()

{

    int msize=0,i,max,element,result,exitt=0;

    printf("How many numbers do you want to insert in Array: \n");

    scanf("%d", &msize);

    int a[msize];

    max=(sizeof(a[0])*msize)/sizeof(a[0]);

    printf("Enter the %d elements in array(Assending Order ONLY)\n", max);

    for ( i = 0; i <max; i++)

    {

        printf("Enter the %d element: ",i+1);

        scanf("%d", &a[i]);

    }

    while (1)

    {

    printf("Enter the element that you wanted to search: ");

    scanf("%d", &element);


    for ( i = 0; i < max; i++)

    {

        printf("%d," ,a[i]);

    }

    printf("\b \n");


    result=binarySearch(a,0,max-1,element);


    if (result == -1)

    {

        printf("\t\t\t\t\t\tElement is not present in Array\n");

    }

    else

    {

        printf("\nElement is found at %d Position in Array\n\n", result);

    }

    

    printf("Press 0 for Continue\nPress 1 for change the Array\nPress 2 for exit\n");

    scanf("%d",&exitt);


    switch (exitt)

    {

    case 1:

        return main();

        break;

    case 2:

        return 0;

        break;

    

    default:

        break;

    }

    }

    return 0;

}

Comments