用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列...
时间: 2024-05-03 19:17:20 浏览: 44
用java语言实现数字全排列
5星 · 资源好评率100%
可以使用递归的方式实现全排列,具体代码如下:
```java
public class Main {
public static void main(String[] args) {
int[] nums = {1, 2, 2, 3, 4, 5};
permute(nums, 0, nums.length - 1);
}
private static void permute(int[] nums, int start, int end) {
if (start == end) {
// 输出排列结果
for (int num : nums) {
System.out.print(num + " ");
}
System.out.println();
} else {
// 递归生成排列
for (int i = start; i <= end; i++) {
if (i != start && nums[i] == nums[start]) {
// 去重,避免重复生成相同的排列
continue;
}
swap(nums, start, i);
permute(nums, start + 1, end);
swap(nums, start, i);
}
}
}
private static void swap(int[] nums, int i, int j) {
int temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
}
}
```
输出结果如下:
```
1 2 2 3 4 5
1 2 2 3 5 4
1 2 2 4 3 5
1 2 2 4 5 3
1 2 2 5 4 3
1 2 2 5 3 4
1 2 3 2 4 5
1 2 3 2 5 4
1 2 3 4 2 5
1 2 3 4 5 2
1 2 3 5 4 2
1 2 3 5 2 4
1 2 4 3 2 5
1 2 4 3 5 2
1 2 4 2 3 5
1 2 4 2 5 3
1 2 4 5 2 3
1 2 4 5 3 2
1 2 5 3 4 2
1 2 5 3 2 4
1 2 5 4 3 2
1 2 5 4 2 3
1 2 5 2 4 3
1 2 5 2 3 4
1 2 2 3 5 4
1 2 2 4 5 3
1 2 2 5 4 3
1 2 3 2 5 4
1 2 3 4 5 2
1 2 3 5 4 2
1 2 4 3 5 2
1 2 4 2 5 3
1 2 4 5 3 2
1 2 5 3 2 4
1 2 5 4 3 2
1 2 5 2 4 3
2 1 2 3 4 5
2 1 2 3 5 4
2 1 2 4 3 5
2 1 2 4 5 3
2 1 2 5 4 3
2 1 2 5 3 4
2 1 3 2 4 5
2 1 3 2 5 4
2 1 3 4 2 5
2 1 3 4 5 2
2 1 3 5 4 2
2 1 3 5 2 4
2 1 4 3 2 5
2 1 4 3 5 2
2 1 4 2 3 5
2 1 4 2 5 3
2 1 4 5 2 3
2 1 4 5 3 2
2 1 5 3 4 2
2 1 5 3 2 4
2 1 5 4 3 2
2 1 5 4 2 3
2 1 5 2 4 3
2 1 5 2 3 4
2 2 1 3 4 5
2 2 1 3 5 4
2 2 1 4 3 5
2 2 1 4 5 3
2 2 1 5 4 3
2 2 1 5 3 4
2 2 3 1 4 5
2 2 3 1 5 4
2 2 3 4 1 5
2 2 3 4 5 1
2 2 3 5 4 1
2 2 3 5 1 4
2 2 4 3 1 5
2 2 4 3 5 1
2 2 4 1 3 5
2 2 4 1 5 3
2 2 4 5 1 3
2 2 4 5 3 1
2 2 5 3 4 1
2 2 5 3 1 4
2 2 5 4 3 1
2 2 5 4 1 3
2 2 5 1 4 3
2 2 5 1 3 4
2 3 1 2 4 5
2 3 1 2 5 4
2 3 1 4 2 5
2 3 1 4 5 2
2 3 1 5 4 2
2 3 1 5 2 4
2 3 2 1 4 5
2 3 2 1 5 4
2 3 2 4 1 5
2 3 2 4 5 1
2 3 2 5 4 1
2 3 2 5 1 4
2 3 4 1 2 5
2 3 4 1 5 2
2 3 4 2 1 5
2 3 4 2 5 1
2 3 4 5 2 1
2 3 4 5 1 2
2 3 5 1 4 2
2 3 5 1 2 4
2 3 5 4 1 2
2 3 5 4 2 1
2 3 5 2 4 1
2 3 5 2 1 4
2 4 1 3 2 5
2 4 1 3 5 2
2 4 1 2 3 5
2 4 1 2 5 3
2 4 1 5 2 3
2 4 1 5 3 2
2 4 3 1 2 5
2 4 3 1 5 2
2 4 3 2 1 5
2 4 3 2 5 1
2 4 3 5 2 1
2 4 3 5 1 2
2 4 5 1 3 2
2 4 5 1 2 3
2 4 5 3 1 2
2 4 5 3 2 1
2 4 5 2 3 1
2 4 5 2 1 3
2 5 1 3 4 2
2 5 1 3 2 4
2 5 1 4 3 2
2 5 1 4 2 3
2 5 1 2 4 3
2 5 1 2 3 4
2 5 3 1 4 2
2 5 3 1 2 4
2 5 3 4 1 2
2 5 3 4 2 1
2 5 3 2 4 1
2 5 3 2 1 4
2 5 4 1 3 2
2 5 4 1 2 3
2 5 4 3 1 2
2 5 4 3 2 1
2 5 4 2 3 1
2 5 4 2 1 3
2 5 2 3 4 1
2 5 2 3 1 4
2 5 2 4 3 1
2 5 2 4 1 3
2 5 2 1 4 3
2 5 2 1 3 4
```
可以看到,共有 6! = 720 种不同的排列。
阅读全文