public class Test {
//输出总共多少个排列
private static int j=0;
public static void main(String[] args) {
int[] a = new int[]{2,6,8,1,7,8,4};
getResolve(a,0,a.length-1);
}
//数组最后一个元素固定
public static void getResolve(int[] array,int len){
for(int i=0;i<=len;i++){
swap(array,i,len);
if(len==0){
print(array);
System.out.println();
return;
}
getResolve(array, len-1);
swap(array,i,len);
}
}
//数组第一个元素固定
public static void getResolve(int[] array,int begin,int len){
for(int i=begin;i<=len;i++){
swap(array,begin,i);
if(begin==len){
print(array);
System.out.println(j++);
return;
}
getResolve(array, begin+1,len);
swap(array,begin,i);
}
}
public static void swap(int[] array,int x,int y){
int temp = array[x];
array[x] = array[y];
array[y] = temp;
}
public static void print(int[] a){
for(int j=0;j
System.out.print(a[j]);
}
}
}