Posted on 2007-04-01 21:31
小强摩羯座 阅读(234)
评论(0) 编辑 收藏
对于组合的递归算法,我没有想出来。我不我会抱持这个问题的。
排列(全排列)的递归算法一般的书上都有其算法,我只是写出来玩玩。递归的理解还是感觉有些难。
1//产生排列的递归算法
2// 1.n==1,Perm(R) = (r)
3// 2.n > 1, perm(R) = (r1)perm(R1), (r2)Perm(R2);
4 static int counter = 1;
5 static void perm(char []list, int k, int m)
6 {
7 if(k == m)
8 System.out.println((counter++)+ " :"+ Arrays.toString(list));
9 else
10 {
11 for(int i=k; i <= m;i++)
12 {
13 swap(list,i, k);
14 perm(list, k+1, m);
15 swap(list,i, k);
16 }
17 }
18 }
19 static void swap(char[] list, int i, int k)
20 {
21 char tmp;
22 tmp = list[k];
23 list[k] = list[i];
24 list[i] = tmp;
25 }
不过也看到上学期有同学去迅雷面试中就有这个题目的。所以简单不简单看知道不知道,理解的深还是浅。