java全排列算法dfs
时间: 2023-11-24 18:52:13 浏览: 65
全排列算法
以下是Java中使用DFS算法实现全排列的代码:
```java
public class Permutation {
public static void main(String[] args) {
int[] nums = {1, 2, 3};
permute(nums, 0, nums.length - 1);
}
public static void permute(int[] nums, int left, int right) {
if (left == right) {
System.out.println(Arrays.toString(nums));
} else {
for (int i = left; i <= right; i++) {
swap(nums, left, i);
permute(nums, left + 1, right);
swap(nums, left, i);
}
}
}
public static void swap(int[] nums, int i, int j) {
int temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
}
}
```
上述代码中,我们定义了一个`permute`方法,该方法接收一个整型数组`nums`、一个左边界`left`和一个右边界`right`作为参数。在`permute`方法中,我们首先判断左右边界是否相等,如果相等,则说明已经排列完毕,直接输出当前排列即可。否则,我们从左边界开始,依次将每个元素与左边界交换,然后递归调用`permute`方法,直到排列完所有元素。
阅读全文