binarySearch
版本A
Rank mi = (lo + hi) >> 1;
if (e < A[mi])
hi = mi;
else if (A[mi] < e)
lo = mi + 1;
else
return mi;
版本B
while (1 < hi-lo){
Rank mi = (lo + hi) >> 1;
(e < A[mi]) ? hi = mi : lo = mi;//深入[lo, mi) || [mi, hi)段继续查找
}
版本C
while (lo < hi){
Rank mi = (lo + hi) >> 1;
(e < A[mi]) ? hi = mi : lo = mi + 1;//[lo,mi) || (mi, hi)
}