2 个版本
0.1.1 | 2023年2月24日 |
---|---|
0.1.0 | 2023年2月24日 |
#34 in #modification
6KB
93 行代码(不包括注释)
permutations_iter
一个迭代排列生成器 不使用递归,适用于 Rust。
Permutations::of(n)
函数使用 Steinhaus-Johnson-Trotter 算法(Even 的修改版)迭代生成 0..n
的排列。
每次调用 next()
的操作具有 $O(n)$ 的时间和空间复杂度。
没有优化。完全未优化。任何改进都受欢迎。
在 MIT 许可证下发布。
lib.rs
:
迭代生成排列,不使用递归。
Permutations.of(n)
函数生成一个迭代器实例,用于生成 0..n
的排列。
Permutations.next()
使用 Steinhaus-Johnson-Trotter 算法(Even 的修改版)在 $O(n)$ 时间内生成下一个排列。
每个迭代器都是单向的。您需要构建一个新的迭代器才能再次迭代。