通过递归的方法实现java数组全排列
通过递归的方法实现实现数组的全排列.
public static double[][] Func(double[] array,int q) {
if(q==array.length-1) {return null;}
double[] m=array.clone();//一定要使用克隆的方式给m复制
double[][] tmp=new double[array.length][];
for (int i = q; i < array.length-1; i++) {
m[q]=array[i];
m[i]=array[q];
tmp[i]=m;
//下面这个循环是用来打印每一次排列的结果的
for (int j = 0; j < m.length; j++) {
System.out.print(m[j]+" ");
}
m=array.clone();//将m复原
System.out.println();
}
Func(l,q+1);
return tmp;
}
public static void main(String[] args) throws Exception {
double[] array= {0.5,0.6,0.7,0.8,0.9,0.11};
Func(array,0);//将数组array第0位开始全排列,得到的是一个存储所有排列结果的二维数组
}