全排列
public class 全排列 {
private static int n=3;
public static int []a=new int[4];
public static int[] used = new int[4];
public static void main(String[] args) {
Arrays.fill(used,0);
dfs(1);
}
public static void dfs(int step){
if(step==n+1){
System.out.println(Arrays.toString(a));
return;
}
for(int i=1;i<=n;i++){
if (used[i]==0){
a[step]=i;
used[i]=1;
dfs(step+1);
used[i]=0;
}
}
}
}
组合
public class 组合 {
public static int n=5;
public static int num=3;
public static int []a=new int[4];
public static void main(String[] args) {
dfs(1,1);
}
public static void dfs(int step,int k){
if(step==num+1){
System.out.println(Arrays.toString(a));
return;
}
for(int i=k;i<=n;i++){
a[step]=i;
dfs(step+1,i+1);
}
}
}