【发布时间】:2014-12-31 13:49:30
【问题描述】:
我有一组元素。我需要生成这些元素的所有排列。
我使用的算法的时间复杂度是 O(n!),它是基于递归的。自然地,每个递归算法都可以使用无限循环和堆栈转换为非递归算法。
是否可以在不使用递归或堆栈+循环等价的情况下生成所有排列?
【问题讨论】:
-
对于“因子时间复杂度算法是否需要递归或堆栈”的答案通常是否。以一个简单地遍历从 1 到 n! 的所有数字的代码为例。至于“是否可以在不使用递归或堆栈+循环等价的情况下生成所有排列?”你可以找到答案here。
-
@Rufflewind 这可能是一个答案,而不是评论:)
-
@AdamStelmaszczyk:我是,但我觉得这个问题可能与我已经链接的问题重复。
-
@Rufflewind 发布此类问题的答案仍然可以。在这种情况下,我认为这不是重复的,这里的问题与“如何有效地生成链表的所有可能排列?”不一样。
标签: algorithm recursion big-o time-complexity