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