|
Current boundary case handling may discard some numbers obliged to
be compared with `searching_for`, which in my opinion can result in
false positives (BS fails to identify the number which is indeed in
the input array).
This commit changed the boundary check condition to
`if(current_mram_block_addr_A < start_mram_block_addr_A + BLOCK_SIZE)`,
where the expression returns true if and only if the length of the range
[start_mram_block_addr_A, end_mram_block_addr_A) has become smaller than
2*BLOCK_SIZE. When this happens, we can then finalize the BS result by
checking if `searching_for` exists within [start_mram_block_addr_A,
end_mram_block_addr_A) without overlooking any number that should be
checked.
Signed-off-by: Yun-Ze Li <p76091292@gs.ncku.edu.tw>
|