本文实例讲述了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程序设计有所帮助。