/**
* 求n个元素的全排列
* 求n个元素的全排列
*/
public static void main(String[] args) {
char[] data = { 'A', 'B', 'C' };
f(data, 0);
}
// k:当前的交换位置,与其后的位置交换
public static void f(char[] data, int k) {
if (k == data.length) {
for (char x : data) {
System.out.print(x + " ");
}
System.out.println();
}
for (int i = k; i < data.length; i++) {
{
char t = data[k];
data[k] = data[i];//试探
data[i] = t;
}
f(data, k + 1);
{
char t = data[k];
data[k] = data[i];//回溯
data[i] = t;
}
}
}