Java实现全排列
public class 全排列 {
public static void main(String[] args) {
dfs(0);
System.out.println(ans);//9的全排有362880种
int sum=1;
for(int i=1;i<=9;i++) {
sum=sum*i;
}
System.out.println(sum);
}
static int[] a = new int[] {1,2,3,4,5,6,7,8,9};
static int n=9,ans=0;
static void dfs(int m) {
if(m>=n) {
System.out.println("一些核心的操作 比如ans:"+ans);
ans++;
for(int i=0;i<n;i++)
System.out.print(a[i]+" ");
System.out.println();
return;
}
for(int i=m;i<n;i++) {
swap(i,m);
dfs(m+1);
swap(i,m);//回溯
}
}
static void swap(int i,int j) {
int t = a[i];
a[i] = a[j];
a[j] = t;
}
}
运行结果: