用java写一个全排列算法
时间: 2024-05-01 20:16:39 浏览: 13
以下是使用递归的Java全排列算法:
```
import java.util.Arrays;
public class Permutation {
public static void main(String[] args) {
int[] nums = {1, 2, 3};
permute(nums);
}
public static void permute(int[] nums) {
permuteHelper(nums, 0);
}
private static void permuteHelper(int[] nums, int index) {
if (index == nums.length - 1) {
System.out.println(Arrays.toString(nums));
} else {
for (int i = index; i < nums.length; i++) {
swap(nums, index, i);
permuteHelper(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;
}
}
```
该算法首先调用`permute()`方法,然后该方法调用`permuteHelper()`方法来进行递归计算。在每个递归层级中,该算法通过交换数组元素来生成所有可能的排列。当到达数组的末尾时,算法打印出该排列。