描述
给定几个数 如 1,2,3 求这几个数的全排列
思想
递归,大问题转换小问题
代码
package shujujiegou;
/**
* Created by lcc on 2017/7/6.
*/
public class Quanpailie {
public static void main(String[] args) {
Quanpailie aa = new Quanpailie();
int[] a = new int[3];
a[0] = 1;
a[1] = 2;
a[2] = 3;
int k = 2;
int n = 3;
aa.quanpailie(a, 3, 2);
}
public void quanpailie(int[] a, int n, int k) {
if (k == 0) {
for (int i = 0; i < n; i++) {
System.out.print(a[i] + " ");
}
System.out.println();
} else {
for (int j = 0; j <= k; j++) {
a = swap(a, k, j);
quanpailie(a, n, k - 1);
a = swap(a, k, j);
}
}
}
public int[] swap(int[] a, int b, int c) {
int temp = a[b];
a[b] = a[c];
a[c] = temp;
return a;
}
}