java输出几个元素的无重复全排列。例如,数据集合(1, 2, 3)的无重复全排列为:123,132, 213,231,312,321。
时间: 2024-10-07 14:05:52 浏览: 9
在Java中,生成无重复全排列可以使用递归的方式。这里是一个简单的示例,使用了回溯算法来实现。假设我们有一个数组`nums`存储了需要排列的元素:
```java
import java.util.ArrayList;
import java.util.Arrays;
public class Permutations {
public static void main(String[] args) {
int[] nums = {1, 2, 3};
permute(nums, 0);
System.out.println(Arrays.toString(nums)); // 输出排列后的结果
}
private static void permute(int[] nums, int index) {
if (index == nums.length - 1) {
// 如果已经到达数组末尾,说明形成一个排列,打印出来
for (int num : nums) {
System.out.print(num + " ");
}
System.out.println();
} else {
// 对每个未排序的元素尝试放在当前位置
for (int i = index; i < nums.length; i++) {
swap(nums, index, i); // 交换元素
permute(nums, index + 1); // 继续对剩余元素排列
swap(nums, index, i); // 撤销操作,回溯到上一步
}
}
}
// 用于交换数组中两个元素的位置
private static void swap(int[] nums, int i, int j) {
int temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
}
}
```
运行上述代码,你会得到(1, 2, 3)的所有无重复全排列。