Q:给了1234四个数,列出所有的排列组合。
A:全排列算法。
Code:
public class Algorithm {
static int[] data= {1,2,3,4};
static int[] tmp = new int[4];
static int[] out =new int[4];
static boolean[] used = new boolean[4];
public static void main(String[] args) {
// TODO Auto-generated method stub
permaition(0);
}
private static void permaition(int offset) {
if(offset ==4) {
for(int i=0;i<4;i++) {
out[i] = tmp[i];
}
}
else{
for(int i=0;i < 4;i++) {
if(!used[i]) {
used[i] = true;
tmp[offset] = data[i];
permaition(offset+1);
used[i] = false;
}
}
}
}
}
闲时手打,全排列对理解递归有益处。