#permutations #algorithm #combinatorics #heaps #rgb

permute

以内存高效和确定性方式生成向量和切片的排列,使用Heap算法

2个不稳定版本

0.2.1 2022年6月5日
0.1.0 2019年8月7日

#876算法

Download history • Rust 包仓库 321/week @ 2024-04-05 • Rust 包仓库 529/week @ 2024-04-12 • Rust 包仓库 300/week @ 2024-04-19 • Rust 包仓库 531/week @ 2024-04-26 • Rust 包仓库 307/week @ 2024-05-03 • Rust 包仓库 287/week @ 2024-05-10 • Rust 包仓库 354/week @ 2024-05-17 • Rust 包仓库 250/week @ 2024-05-24 • Rust 包仓库 445/week @ 2024-05-31 • Rust 包仓库 506/week @ 2024-06-07 • Rust 包仓库 416/week @ 2024-06-14 • Rust 包仓库 382/week @ 2024-06-21 • Rust 包仓库 242/week @ 2024-06-28 • Rust 包仓库 209/week @ 2024-07-05 • Rust 包仓库 294/week @ 2024-07-12 • Rust 包仓库 274/week @ 2024-07-19 • Rust 包仓库

1,080 每月下载量

AGPL-3.0-or-later

11KB
130

permute

crate.io version badge docs.rs status badge github actions status badge

以内存高效和确定性方式生成切片的排列,使用Heap算法

例如,打印序列["red", "green", "blue"]的所有排列

use permute::permutations_of;

for permutation in permutations_of(&["red", "green", "blue"]) {
    for element in permutation {
        print!("{}, ", element);
    }
    println!("");
}

基于Heap算法提供的排序,本程序将保证产生

red, green, blue,
green, red, blue,
blue, red, green,
red, blue, green,
green, blue, red,
blue, green, red,

此crate还提供了ArbitraryTandemControlIter,它允许使用索引切片迭代切片——这就是在这里实现Heap算法的方式。

无运行时依赖