以下是两个我觉得对我理解这个问题及算法帮助很大的两篇文章。
代码:
package s01;
public class QuanPaiLie {
public static void main(String[] args) {
int[] a = {1,2,3,4};
qpl(a,0,3);
}
static void qpl(int[] a,int begin,int end) {
if(begin==end) {
for(int i:a)
System.out.print(i);
System.out.println();
}
for(int i=begin;i<=end;i++) {
int t = a[begin];
a[begin] = a[i];
a[i] = t;
qpl(a,begin+1,end);
int m = a[begin];
a[begin] = a[i];
a[i] = m;
}
}
}