题目:
将1-5,5个数字进行全排列,并输出共有多少种方案?
import java.util.Arrays;
/*
将1-5,5个数字进行全排列,并输出共有多少种方案
*/
public class Permutation {
private static int sum,temp;
private static int[] numArr={1,2,3,4,5};
public static void main(String[] args) {
sum=0;
perm(numArr,0,numArr.length-1);
System.out.println(sum);
}
private static void perm(int[] numArr, int start, int end) {
if(start==end){
sum++;
System.out.println(Arrays.toString(numArr));
}else{
for(int i=start;i<=end;i++){
swap(numArr,start,i);
perm(numArr, start+1, end);
swap(numArr,start,i);//将之前交换的数据换回来
}
}
}
//交换数据
private static void swap(int[] numArr, int x, int y) {
temp=numArr[x];
numArr[x]=numArr[y];
numArr[y]=temp;
}
}