TA的每日心情 | 开心 2021-3-12 23:18 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
- /**
- * 字符串全排列
- * @author ConverseMe
- *
- */
- public class AllSortChar {
- public static void allSort(char[] buf, int start, int end) {
- if(start == end) { //当只要求对数组中一个字母进行全排列时,只要按该数组输出即可
- for(int i = 0; i <= end; i ++) {
- System.out.print(buf[i]);
- }
- System.out.println();
- } else {
- //多个字母全排列
- for(int i = start; i <= end; i ++) {
- char temp = buf[start]; //交换数组第一个元素与后续的元素
- buf[start] = buf[i];
- buf[i] = temp;
-
- allSort(buf, start+1, end); //后续元素递归全排列
-
- temp = buf[start]; //将交换后的数组还原
- buf[start] = buf[i];
- buf[i] = temp;
-
- }
-
- }
- }
-
- public static void main(String[] args) {
- String test = "abcd";
- char[] chars = test.toCharArray();
- allSort(chars, 0, chars.length - 1);
- }
-
- }
复制代码 运行结果: C:java>java AllSortChar
abcd
abdc
acbd
acdb
adcb
adbc
bacd
badc
bcad
bcda
bdca
bdac
cbad
cbda
cabd
cadb
cdab
cdba
dbca
dbac
dcba
dcab
dacb
dabc C:java> |
|