Skip to content

Commit 1ef5453

Browse files
k_smallest(1) and variants: use min[_by]
Like with `tail(1)`, I think we should leverage a possible faster specialization.
1 parent e6c9411 commit 1ef5453

File tree

2 files changed

+6
-0
lines changed

2 files changed

+6
-0
lines changed

src/k_smallest.rs

+3
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,9 @@ where
4545
iter.last();
4646
return Vec::new();
4747
}
48+
if k == 1 {
49+
return iter.min_by(comparator).into_iter().collect();
50+
}
4851
let mut iter = iter.fuse();
4952
let mut storage: Vec<I::Item> = iter.by_ref().take(k).collect();
5053

src/lib.rs

+3
Original file line numberDiff line numberDiff line change
@@ -2975,6 +2975,9 @@ pub trait Itertools: Iterator {
29752975
self.last();
29762976
return Vec::new().into_iter();
29772977
}
2978+
if k == 1 {
2979+
return self.min().into_iter().collect_vec().into_iter();
2980+
}
29782981

29792982
let mut iter = self.fuse();
29802983
let mut heap: BinaryHeap<_> = iter.by_ref().take(k).collect();

0 commit comments

Comments
 (0)