Function nekolib::algo::extremum_slice
source · pub fn extremum_slice<T: Ord>(buf: &[T], f: impl FnMut(&T) -> T) -> (usize, T)
Expand description
三分探索で極値を探す。
Notes
extremum
を参照されたい。
Examples
use nekolib::algo::extremum_slice;
let buf = [1, 3, 4, 6, 5, 2, 0, 1, 3];
// <------ f ------>
// <------ g ------>
let f = |&x: &i32| x * x;
assert_eq!(extremum_slice(&buf[..6], f), (3_usize, 36));
let g = |&x: &i32| -x;
assert_eq!(extremum_slice(&buf[3..], g), (3_usize, 0));