Top | MCQs on Binary Search Algorithm with Answers | Question 9

Last Updated :
Discuss
Comments

Consider the following C program that attempts to locate an element x in an array Y[] using binary search. The program is erroneous.

C
1.   f(int Y[10], int x) {
2.     int i, j, k;
3.     i = 0; j = 9;
4.     do {
5.             k =  (i + j) /2;
6.             if( Y[k] < x)  i = k; else j = k;
7.         } while(Y[k] != x && i < j);
8.     if(Y[k] == x) printf ("x is in the array ") ;
9.     else printf (" x is not in the array ") ;
10. }

On which of the following contents of Y and x does the program fail?

Y is [2 4 6 8 10 12 14 16 18 20] and 2 < x < 20 and x is even

Y is [2 2 2 2 2 2 2 2 2 2] and x > 2

Y is [1 3 5 7 9 11 13 15 17 19] and x < 1

Y is [1 2 3 4 5 6 7 8 9 10] and x < 10

Share your thoughts in the comments