列出一组给定值的所有排列

问题描述 投票:1回答:3

我对可以用来生成给定集合的所有潜在排列的不同技术/方法的比较感兴趣。

algorithm permutation
3个回答
6
投票

您可以在性能,特定分布和简单性之间进行选择。我所说的特定分布是指您是否关心输出的某些特定顺序,例如字典顺序。

据我所知,性能最佳的算法是Steinhaus algorithm。从产生一个置换只需要恒定数量的处理器指令的意义上说,最佳的是乘数常数(不计算打印输出所必需的指令,这并不总是必需的)。

还有一种非常简单的算法,它可以按字典顺序生成排列,您可能可以自己将其重新创建为递归过程,其性能为O(n.log(n).log(n) )


0
投票

我发现一个非常好的resource。希望它能对您有所帮助。


-1
投票

这个问题已经被问及回答了(实际上很多次:):

Algorithm to generate all possible permutations of a list?

© www.soinside.com 2019 - 2024. All rights reserved.