import java.util.*;
public class Test {
static int[] data;
static int n;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
data = new int[n];
for (int i = 0; i < n; i++) {
data[i] = i;
}
f(0);
}
// k代表当前处理的是第几个数
private static void f(int k) {
if (k == n) {
for (int i = 0; i < data.length; i++) {
System.out.print(data[i] + " ");
}
System.out.println();
return;
}
// 此处i要从k开始,要包括k位置的数与k位置的数交换的过程
for (int i = k; i < n; i++) {
int t = data[i];
data[i] = data[k];
data[k] = t;
f(k + 1);
t = data[i];
data[i] = data[k];
data[k] = t;
}
}
}
全排列
最新推荐文章于 2024-03-19 21:34:40 发布