public class Main {
private static int ans;
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9};
ans = 0;
f(arr, 0);
System.out.println(ans);
}
// 全排列
public static void f(int[] arr, int k) {
if (k == 9) { // 说明数组arr所有位置的数都已确定,输出结果
print(arr); // 自定print函数,输出排列
return;
}
for (int i = k; i < arr.length; i++) { // 从k开始也就包含了不交换位置的情况
int t = arr[k];
arr[k] = arr[i];
arr[i] = t;
f(arr, k+1);
// 回溯
t = arr[k];
arr[k] = arr[i];
arr[i] = t;
}
}
public static void print(int[] arr) {
for (int i = 0; i < arr.length; i++) {
System.out.printf("%d ", arr[i]);
}
System.out.println();
ans++;
}
}
java 全排列
最新推荐文章于 2024-07-22 14:15:06 发布