小编bin*_*rch的帖子

二分搜索中值计算

以下是我从TopCoder关于二进制搜索的教程中得到的伪代码

binary_search(A, target):
   lo = 1, hi = size(A)
   while lo <= hi:
      mid = lo + (hi-lo)/2
      if A[mid] == target:
         return mid            
      else if A[mid] < target: 
         lo = mid+1
      else:
         hi = mid-1

   // target was not found
Run Code Online (Sandbox Code Playgroud)

为什么我们计算中间值为mid = lo +(hi-lo)/ 2(hi + lo)/ 2错了

我有一点想法,可能是为了防止溢出,但我不确定,也许有人可以向我解释,如果还有其他原因.

binary-search

20
推荐指数
5
解决办法
1万
查看次数

标签 统计

binary-search ×1