【发布时间】:2019-03-06 21:22:59
【问题描述】:
例如{&, *, %} 的置换算法被放置在 8 个位置:
&&&&&&&&&&&&&&&&&*&&&&&&&&%&&&&&&&*%&&&&&&&**
...
我在网上看到的堆的排列算法只适用于字符数等于位置数的那些,以及那些可以处理不等字符数和位置数的那些,只适用于整数,而不适用于字符.我还不得不说到目前为止我还没有达到任何工作算法,因为我对算法一无所知。我试过一次,看到堆的算法后,我无法命名它的算法!如果有帮助:
- 将
&添加到输出数组。 - 将
%添加到新索引的输出数组中。 - 将
*添加到新索引的输出数组中。 - 对每三个执行递归算法。
但我显然无法处理数组索引。 我也尝试使用从 0 到 2 的数字来表示 &、%、*;但我没有得到一个好的答案。
【问题讨论】:
-
提示:使用数字 0、1 和 2 来表示
&、*和%。 -
@SaniSinghHuttunen 我试过了,没用。至少我找不到使用它的方法。
-
8 个位置,每个位置有 3 个可能的字符,总共 3^8 个输出。所以从一个运行 6561 次的循环开始。从那里去哪里的详细信息取决于您使用的编程语言。
标签: arrays algorithm permutation heaps-algorithm