Monday, January 2, 2017

Binary Search in C

Program to find an element using binary search in C


#define MAX 50
#include \
main()
{
        int array[MAX], key, i, flag = 0, n, location;
        int low, high, middle;
        printf("Enter the the number of elements: ");
        scanf("%d", &n);
        printf("Enter the elements in the array:\n");
        for (i = 0; i < n; i++)
        {
                scanf("%d", &array[i]);
        }
        printf("Enter the key to be searched: ");
        scanf("%d", &key);
        low = 0;
        high = n - 1;
        while(low <= high)
        {
                middle = (low + high) / 2;
                if (array[middle] == key)
                {
                        flag = 1;
                        location = middle + 1;
                        break;
                }
                else if (key > array[middle])
                        low = middle + 1;
                else
                        high = middle - 1;
        }
        if (flag == 1)
                printf("%d found at location %d\n", key, location);
        else
                printf("%d not found!\n", key);
}