二分區間可以是左閉右開,或者都閉也行。
如果是都閉,判斷條件是while(L<R)。如果是L+1,那麼就需要mid=L+(R-L)/2,靠近L一點。如果是R-1,就注意要mid=L+(R-L+1)/2,靠近R一點。這樣做是為了避免出現區間[a,a+1]出現死循環問題。
總之二分的條件很靈活,判斷條件也可以是L<R-1,L和R也可以都等于mid,還是要看情況,隻要避免死循環就行了。
如果二分浮點型的就不會出現這樣的問題。
二分區間可以是左閉右開,或者都閉也行。
如果是都閉,判斷條件是while(L<R)。如果是L+1,那麼就需要mid=L+(R-L)/2,靠近L一點。如果是R-1,就注意要mid=L+(R-L+1)/2,靠近R一點。這樣做是為了避免出現區間[a,a+1]出現死循環問題。
總之二分的條件很靈活,判斷條件也可以是L<R-1,L和R也可以都等于mid,還是要看情況,隻要避免死循環就行了。
如果二分浮點型的就不會出現這樣的問題。