C Program to search number using binary search and display position | DS - IProgramX

Q. Create a random array of n integers. Sort the array using bubble sort. Accept a value x from the user and use a binary search algorithm to check whether the number is present in the array or not and output the position if the number is present. 


Program

#include <stdio.h>
void main()
{
    int array[10];
    int i, j, num, temp, keynum;
    int low, mid, high;

    printf("Enter the value of num \n");
    scanf("%d", &num);
    printf("Enter the elements one by one \n");
    for (i = 0; i < num; i++)
    {
        scanf("%d", &array[i]);
    }
    printf("Input array elements \n");
    for (i = 0; i < num; i++)
    {
        printf("%d\n", array[i]);
    }
    /*  Bubble sorting begins */
    for (i = 0; i < num; i++)
    {
        for (j = 0; j < (num - i - 1); j++)
        {
            if (array[j] > array[j + 1])
            {
                temp = array[j];
                array[j] = array[j + 1];
                array[j + 1] = temp;
            }
        }
    }
    printf("Sorted array is...\n");
    for (i = 0; i < num; i++)
    {
        printf("%d\n", array[i]);
    }
    printf("Enter the element to be searched \n");
    scanf("%d", &keynum);
    /*  Binary searching begins */
    low = 1;
    high = num;
    do
    {
        mid = (low + high) / 2;
        if (keynum < array[mid])
            high = mid - 1;
        else if (keynum > array[mid])
            low = mid + 1;
    } while (keynum != array[mid] && low <= high);
    if (keynum == array[mid])
    {
        printf("SEARCH SUCCESSFUL \n");
    }
    else
    {
        printf("SEARCH FAILED \n");
    }
}

Output:

Enter the value of num
4
Enter the elements one by one
3
4
3
6
Input array elements
3
4
3
6
Sorted array is...
3
3
4
6
Enter the element to be searched
6

SEARCH SUCCESSFUL

Post a Comment

0 Comments