GATE CSE
First time here? Checkout the FAQ!
x
0 votes
123 views
If the binary search algorithm determines that the scanned argument is in upper half of the array,which of the following statement will set the appropriate variable to the appropriate value.

A) startsub= middlesub-1;

B) startsub=middlesub+1;

C)stopsub=middlesub-1;

D)stopsub=middlesub+1;
asked in DS by (401 points)   | 123 views

2 Answers

+1 vote
Best answer
Option B is Ans

Cz as we know the Searching element is in Upper half then We will Increase the middlesub index  by 1. So that our search space is reduced by half.

So stopsub as it is and startsub=middlesub+1

So option B is correct Ans.
answered by Veteran (15.2k points)  
selected by
For the binary search ,the array is order(ascending).So if we know searching element is in upper half ,means that we should continue search in upper half.So our lower index would change and not the upperindex..

My confusion is with the understanding of the question.what the question mean when it says "Scanned argument".Is it the key that we want to search (search argument) or the scanned array element.

If search argument is less than the middle element the we do stopsub=middle -1;

And if the search argument is greater than middle element then we do startsub=middlesub+1;

Please solve my doubt around the question understanding.
Oh..Yes I have drawn the array vertically ;;So I Thought that Upper half means LHS..

But Now I drawn it horizontally..Cz max people do so.

&Ur Doubt:--It is the search element

 

See my Edited Ans..->>Thanks for Comment
0 votes
B. startsub = middlesub + 1
answered by Loyal (3.3k points)  
Top Users Jan 2017
  1. Debashish Deka

    8126 Points

  2. sudsho

    5042 Points

  3. Habibkhan

    4706 Points

  4. Vijay Thakur

    4458 Points

  5. Bikram

    4348 Points

  6. saurabh rai

    4212 Points

  7. Arjun

    4010 Points

  8. santhoshdevulapally

    3722 Points

  9. GateSet

    3292 Points

  10. Sushant Gokhale

    3286 Points

Monthly Topper: Rs. 500 gift card

19,122 questions
24,033 answers
52,725 comments
20,276 users