Function binary_search
Source pub fn binary_search<T, F>(f: F, ok: T, err: T) -> T
Expand description
binary search for monotone segment
if ok < err then search [ok, err) where t(ok), t, t, …. t, t(ret), f, … f, f, f, err
if err < ok then search (err, ok] where err, f, f, f, … f, t(ret), … t, t, t(ok)
crates/competitive/src/algorithm/binary_search.rs (
line 101)
100 fn position_bisect(&self, mut f: impl FnMut(&T) -> bool) -> usize {
101 binary_search(|i| f(&self[*i as usize]), self.len() as i64, -1) as usize
102 }
103 fn rposition_bisect(&self, mut f: impl FnMut(&T) -> bool) -> usize {
104 binary_search(|i| f(&self[i - 1]), 0, self.len() + 1)
105 }