二分查找关键是:由谓词从原序列中可产生一个新序列

...nonononononoyesyesyesyesyes...

知道自己是要找no的最大位置,还是yes的最小位置

binary_search(lo, hi, p):while lo <= hi:mid = lo + (hi-lo)/2if p(mid) == true:hi = mid-1else:lo = mid+1return lo //求yes的最小位置或者return hi //求no的最大位置