1个不稳定版本
0.1.0 | 2022年4月22日 |
---|
#1810 in 数据结构
17KB
402 行
tournament
使用二叉堆实现一个k
路归并迭代器。当给定k
个有序数据集时,k路归并迭代器非常有用,您希望在集合之间以高效的方式找到n
个最大元素,而不需要对整个数据集进行排序。
想象一下有数十个包含数百个元素的切片,而你只关心前10个。
use tournament::Tournament;
let t = Tournament::from_iters_min([(1..2000), (1..20000), (1..5000000)]);
assert_eq!(t.take(5).collect::<Vec<_>>(), [1, 1, 1, 2, 2]);
许可证:MIT OR Apache-2.0
lib.rs
:
使用二叉堆实现一个k
路归并迭代器。当给定k
个有序数据集时,k路归并迭代器非常有用,您希望在集合之间以高效的方式找到n
个最大元素,而不需要对整个数据集进行排序。
想象一下有数十个包含数百个元素的切片,而你只关心前10个。
use tournament_kway::Tournament;
let t = Tournament::from_iters_min([(1..2000), (1..20000), (1..5000000)]);
assert_eq!(t.take(5).collect::<Vec<_>>(), [1, 1, 1, 2, 2]);
依赖项
~97KB