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
27
28
29
30
31 |
public class AllSort{ static
String[] buf = { "1" , "2" , "44" , "7" }; public
static void main(String[] args) { perm(buf, 0 , 3 ); } public
static void perm(String[] 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++){ String temp=buf[start]; //交换数组第一个元素与后续的元素 buf[start]=buf[i]; buf[i]=temp; perm(buf,start+ 1 ,end); //后续元素递归全排列 temp=buf[start]; //将交换后的数组还原 buf[start]=buf[i]; buf[i]=temp; } } } } |
原文:http://www.cnblogs.com/daifei/p/3732586.html