Function nekolib::algo::minmax::minmax

source ·
pub fn minmax<T: Ord>(buf: &[T]) -> Option<(&T, &T)>
Expand description

スライスの最小値および最大値を求める。

該当する要素が複数個あった場合、最小値は最左のもの、最大値は最右のものが選ばれる。 スライスが空の場合は None を返す。

Suggestions

最小値・最大値の添字ではなく最小値・最大値自体を返すようになっている。 添字が欲しい場合は minmax_by_key を利用するのがよい? あるいは設計を変える?

Complexity

minmax_by における compare の呼び出し回数と同じだけ、要素間の比較を行う。

Notes

詳細については minmax_by を参照。

Examples

use nekolib::algo::minmax;

assert_eq!(minmax(&[3, 2, 4, 1, 2, 0, 6]), Some((&0, &6)));
assert_eq!(minmax(&Vec::<i32>::new()), None);