本文实例讲述了Java实现字符数组全排列的方法。分享给大家供大家参考,具体如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
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 );
}
}
|
运行测试,输出结果:
abc
acb
bac
bca
cba
cab
希望本文所述对大家Java程序设计有所帮助。