#permutations #algorithm #combinatorics #heaps #rgb

permute

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

2个不稳定版本

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

#876算法

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

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算法的方式。

无运行时依赖