Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 通过字符数组进行排列_Java_Arrays_Unique_Combinations - Fatal编程技术网

Java 通过字符数组进行排列

Java 通过字符数组进行排列,java,arrays,unique,combinations,Java,Arrays,Unique,Combinations,假设您需要发现“n”个不同字符的所有可能排列,例如“a”、“b”、“c”。你能推荐一个我可以用来完成这个任务的算法吗?一般来说,你会怎么做?有一个Java实现。让“Perms”是找到的排列的集合,“Used”是当前选定字符的列表 要从集合S中查找n个字符的排列: 如果n=0,则使用的是置换。将其添加到烫发并返回 对于S中的每个字符C: 从S中删除C并将其附加(或推)到U 从S中找出n-1个字符的排列 移除(或弹出)U的末端,并将C添加到S 当您从查找n个字符的置换返回时,置换包含所有可能的置换

假设您需要发现“n”个不同字符的所有可能排列,例如“a”、“b”、“c”。你能推荐一个我可以用来完成这个任务的算法吗?一般来说,你会怎么做?

有一个Java实现。

让“Perms”是找到的排列的集合,“Used”是当前选定字符的列表

要从集合S中查找n个字符的排列:

  • 如果n=0,则使用的是置换。将其添加到烫发并返回
  • 对于S中的每个字符C:
  • 从S中删除C并将其附加(或推)到U
  • 从S中找出n-1个字符的排列
  • 移除(或弹出)U的末端,并将C添加到S
  • 当您从查找n个字符的置换返回时,置换包含所有可能的置换

    注意,这都是使用集合和列表完成的。有重量更轻的替代方案,但这些结构使步骤更简单,所以我使用了它们