全排列(四种方法)
1.逐步生成大法-迭代法
1.1思路图解
通过在每个位置上插入新字符实现全排列

1.2代码实现
1.2.1核心代码
public ArrayList<String> getPermutation0(String A) {
int n = A.length();
ArrayList<String> res = new ArrayList<>();
res.add(A.charAt(0) + "");//初始化,包含第一个字符
for (int i = 1; i < n; i++) {
//第二个字符插入到前面生成集合的每个元素里面
ArrayList<String> res_new = new ArrayList<>();
char c = A.charAt(i);//新字符
for (String str : res) {
//访问上一趟集合中的每个字符串
// 插入到每个位置,形成一个新串
String newStr = c + str;//加在前面
res_new.add(newStr);
newStr = str + c;//加在后面
res_new.add(newStr);
//加在中间
for (int j = 1; j < str.length(); j++) {
newStr = str.substring(0, j) + c + str.substring(j);
res_new.add(newStr);
}
}
res = res_new;//更新
}
return res;
}
1.2.2完整代码(复制即可运行)
package LanQiao;
import java.util.ArrayList;
public class Demo17 {
public static void main(String[] args) {
ArrayList<String> res = new Demo17().

本文深入解析全排列的四种实现方法:迭代法、多路递归、前缀法及递归法,提供详细的代码示例与运行结果,帮助读者理解并掌握全排列算法的核心思想。
最低0.47元/天 解锁文章
1462

被折叠的 条评论
为什么被折叠?



