#并查集 #集合划分

partitions

一个允许高效迭代集合元素的并查集/集合划分实现

6 个版本

使用旧的 Rust 2015

0.2.4 2018 年 10 月 31 日
0.2.3 2018 年 10 月 31 日
0.1.0 2018 年 10 月 22 日

算法 中排名第 1200

Download history 3720/week @ 2023-10-18 3972/week @ 2023-10-25 2990/week @ 2023-11-01 2633/week @ 2023-11-08 2277/week @ 2023-11-15 2270/week @ 2023-11-22 3215/week @ 2023-11-29 3880/week @ 2023-12-06 2441/week @ 2023-12-13 1463/week @ 2023-12-20 776/week @ 2023-12-27 3030/week @ 2024-01-03 3208/week @ 2024-01-10 3457/week @ 2024-01-17 2963/week @ 2024-01-24 2237/week @ 2024-01-31

每月下载量 12,543
6 仓库中使用(3 直接使用)

Apache-2.0

69KB
807

分区

一个将向量划分成集合的 并查集/集合划分 实现,允许高效迭代集合的元素。

Latest version Documentation Average time to resolve an issue Percentage of issues still open Maintenance Build Status

此库的主要结构是 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.rsmain.rs

extern crate partitions;

许可证

分区软件按照Apache许可证(版本2.0)的条款进行分发。

依赖项

约1.5MB
约26K SLoC