给定n个不同的字符,输出全排列。
时间: 2024-06-09 11:06:16 浏览: 124
输出一个字符串的所有排列
5星 · 资源好评率100%
给定n个不同的字符,输出全排列的结果将会有n!种组合方式。具体的实现代码如下:
```
package pac01;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class AllPermutation {
public static void main(String[] args) throws IOException {
char[] ch = {'A', 'B', 'C', 'D'};
int t = 1;
for (int i = 1; i <= ch.length; i++) {
t *= i;
}
System.out.println("共有" + t + "种组合方式");
char[] result = new char[ch.length];
AllPermutation.show(0, ch, result);
}
public static void show(int t, char[] ch, char[] result) {
//如果只有一个字符
if (ch.length == 1) {
result[t = ch = ch[i];
char[] newSource = getNewSource(ch, ch[i]);
show(t + 1, newSource, result);
}
}
public static char[] getNewSource(char[] source, char c) {
char[] newSource = new char[source.length - 1];
for (int i = 0, j = 0; i < source.length; i++) {
if (source[i != c) {
newSource[j = source[i];
j++;
}
}
return newSource;
}
}
```
以上代码可以实现给定n个不同的字符,输出其全排列的功能。通过递归的方式,不断将字符数组中的字符加入到结果数组中,直到只剩下一个字符时,输出结果。可以根据需要修改字符数组`ch`的内容来获取不同的全排列结果。
阅读全文