recherche binaire moyen de calcul de valeur de

Voici le pseudo-code que j'ai obtenu à partir d'un TopCoder tutoriel sur la recherche binaire

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

Pourquoi nous calculons la valeur moyenne, comme mi = lo + (hi - lo) /2 ? Quoi de mal avec (hi + lo) /2

J'ai une légère idée qu'il peut être pour éviter les débordements, mais je ne suis pas sûr, peut-être quelqu'un peut-il m'expliquer et si il y a d'autres raisons derrière tout cela.

InformationsquelleAutor binsearch | 2010-12-26