我自己写了个递归的全排列,可是程序总是出现问题,谁能帮忙看看public class Recursion {
/**
* 要递归的string数组,n代表递归前n个
* @param arg
* @param n
*/
public void printQuanPailie(String []arg,int n){
int temp=n;
if(n==0){
System.out.print(arg[0]);
}else {
System.out.print(arg[n]);
printQuanPailie(arg, n-1);
System.out.println();
printQuanPailie(arg, n-1);
System.out.print(arg[n]);
System.out.println();
}
n=temp;
}public static void main(String[] args) {
Recursion sion=new Recursion();
String []arg=new String[]{"1","2","3"};
sion.printQuanPailie(arg, 2);
}
}
/**
* 要递归的string数组,n代表递归前n个
* @param arg
* @param n
*/
public void printQuanPailie(String []arg,int n){
int temp=n;
if(n==0){
System.out.print(arg[0]);
}else {
System.out.print(arg[n]);
printQuanPailie(arg, n-1);
System.out.println();
printQuanPailie(arg, n-1);
System.out.print(arg[n]);
System.out.println();
}
n=temp;
}public static void main(String[] args) {
Recursion sion=new Recursion();
String []arg=new String[]{"1","2","3"};
sion.printQuanPailie(arg, 2);
}
}
1221
12
3
楼主认为123的全排列=3+12的全排列,以及12的全排列+3
忽略了132这样的排列方式,
算法要重新考虑了