|
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