6 个版本
使用旧的 Rust 2015
0.2.4 | 2018 年 10 月 31 日 |
---|---|
0.2.3 | 2018 年 10 月 31 日 |
0.1.0 | 2018 年 10 月 22 日 |
在 算法 中排名第 1200
每月下载量 12,543
在 6 个 仓库中使用(3 直接使用)
69KB
807 行
分区
一个将向量划分成集合的 并查集/集合划分 实现,允许高效迭代集合的元素。
此库的主要结构是 PartitionVec<T>
,它具有 Vec<T>
的功能,并且还分割了此向量的元素。每个元素从自己的集合开始,可以使用 union
方法将集合连接起来。你可以使用 same_set
方法检查元素是否属于同一集合,并使用 set
方法迭代集合中的元素。该方法非常快速,具有 O(α(n))
的摊销复杂度,其中 α
是逆阿克曼函数,n
是长度。这个复杂度已经被证明是最优的,对于任何可以写进可观测宇宙中的 n
,α(n)
的值都小于 5。通过 set
返回的迭代器的下一个元素在 O(1)
时间内找到。
并查集算法用于高性能的统一实现。它也是实现 Kruskal 算法以找到图的最小生成树的关键组件。
使用 Partitions
使用此库的推荐方法是将其添加到您的 Cargo.toml
文件中,例如
[dependencies]
partitions = "0.2"
然后添加以下内容到您的 lib.rs
或 main.rs
extern crate partitions;
许可证
分区软件按照Apache许可证(版本2.0)的条款进行分发。
依赖项
约1.5MB
约26K SLoC