2个不稳定版本

0.4.0 2023年8月25日
0.3.10 2022年12月19日
0.2.2 2022年5月12日
0.1.6 2022年5月4日

算法中排名1617

Download history 71/week @ 2024-03-21 40/week @ 2024-03-28 103/week @ 2024-04-04 190/week @ 2024-04-11 9/week @ 2024-04-18 19/week @ 2024-04-25 25/week @ 2024-05-02 12/week @ 2024-05-09 83/week @ 2024-05-16 2/week @ 2024-05-23 18/week @ 2024-05-30 77/week @ 2024-06-06 12/week @ 2024-06-13 17/week @ 2024-06-20 17/week @ 2024-06-27 58/week @ 2024-07-04

每月下载量110

MIT许可证

25KB
321

Top N集合

Crates.io Crates.io License Docs

此包提供了一种topset,用于选择给定数量的最大元素。用于排序元素的标准可以通过闭包指定。它在内部基于固定大小的二叉堆。

可以直接使用TopSet结构体,也可以通过TopSetReducing特质,该特质会自动扩展迭代器特质。

注意:返回的元素未排序。

use topset::TopIter;


fn main()
{
    let items = vec![4, 5, 8, 3, 2, 1, 4, 7, 9, 8];
    
    // getting the four greatest integers (repeating allowed)
    items.iter().cloned()
            .topset(4, i32::gt)
            .into_iter()
            .for_each(|x| eprintln!("in the top 4: {}", x));

    // getting the four smallest integers
    // (we just need to reverse the comparison function)
    items.topset(4, i32::lt)
            .into_iter()
            .for_each(|x| eprintln!("in the last 4: {}", x));
}

将产生(可能顺序不同)

in the top 4: 7
in the top 4: 8
in the top 4: 9
in the top 4: 8
in the last 4: 4
in the last 4: 3
in the last 4: 1
in the last 4: 2

无运行时依赖