 Open in App
Not now

# Algorithms | Searching | Question 6

• Last Updated : 28 Jun, 2021

## C++

 `1. f(``int` `Y, ``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. }`

In the above question, the correction needed in the program to make it work properly is (GATE CS 2008)

(A)

Change line 6 to: if (Y[k] < x) i = k + 1; else j = k-1;

(B)

Change line 6 to: if (Y[k] < x) i = k – 1; else j = k+1;

(C)

Change line 6 to: if (Y[k] <= x) i = k; else j = k;

(D)

Change line 7 to: } while ((Y[k] == x) && (i < j));

Explanation:

Below is the corrected function

## C

 `f(``int` `Y, ``int` `x) {``   ``int` `i, j, k;``   ``i = 0; j = 9;``   ``do` `{``           ``k =  (i + j) /2;``           ``if``( Y[k] < x)  i = k + 1; ``else` `j = k - 1;``       ``} ``while``(Y[k] != x && i < j);``   ``if``(Y[k] == x) ``printf` `(\"x is in the array \") ;``   ``else` `printf` `(\" x is not in the array \") ;``}`

Reference: http://en.wikipedia.org/wiki/Binary_search_algorithm#Implementations

Quiz of this Question
Please comment below if you find anything wrong in the above post

My Personal Notes arrow_drop_up