您的位置:首页 > 运维架构

输出字符串的所有排列组合情况

2017-07-16 00:00 295 查看

先记录代码,是copy的,日后分析。

import org.junit.Test;

public class AllSort {

public void permutation(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;

permutation(buf, start + 1, end);// 后续元素递归全排列

temp = buf[start];// 将交换后的数组还原
buf[start] = buf[i];
buf[i] = temp;
}
}
}

@Test
public void testPermutation() throws Exception {
char[] buf = new char[] { 'a', 'b', 'c' };
permutation(buf, 0, 2);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息