排列字符数组
假设您需要发现“n”个不同字符的所有可能排列,例如“a”、“b”、“c”。您能建议我可以用来完成此任务的算法吗?一般来说,你会怎么做?
Suppose you need to discover all possible permutations of 'n' distinct characters, say 'a', 'b', 'c'. Can you suggest an algorithm I can use to get this done? Generally speaking, how would you go about it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
有一个 Java 实现此处。
There is a Java implementation here.
令“Perms”为找到的排列的集合,“Used”为当前所选字符的列表。
从集合 S 中查找 n 个字符的排列:
当您从查找返回时n 个字符的排列,Perms 包含所有可能的排列。
请注意,这一切都是使用集合和列表完成的。有更轻量级的替代方案,但这些结构使步骤更加简单,所以我使用了它们。
Let 'Perms' be the collection of permutations found, and 'Used' be a list of the characters currently selected.
To find permutations of n chars from a set S:
When you've returned from finding permutations of n chars, Perms contains all the possible permutations.
Note, this is all done using sets and lists. There are lighter-weight alternatives, but these structures make the steps more straightforward, so i used them.