全排列--递归算法

import java.util.ArrayList;
import java.util.List;

public class PaiLie {

 /**
  * @param args
  */
 public static void main(String[] args) {
  List<String> strList = new ArrayList<String>();
  strList.add("a");
  strList.add("b");
  strList.add("c");
  
  quanpailie(strList, 0);
 }
 
 /**
  * 按递归算法列出全排列
  * @param strList
  * @param cur
  */
 private static void quanpailie(List<String> strList, int cur)
 {
  if(cur >= strList.size()) {
   System.out.println(strList);
   return;
  }
   
  for(int i = cur; i < strList.size(); i++)
  {
   wape(strList, cur, i);
   quanpailie(strList, cur+1);
   wape(strList, cur, i);
  }
 }

 /**
  * 交换第i和j位置的值
  * @param strList
  * @param i
  * @param j
  */
 private static void wape(List<String> strList, int i,int j )
 {
  String temp = strList.get(i);
  strList.set(i, strList.get(j));
  strList.set(j, temp);
  
 }
}

posted on 2010-01-19 11:46 飞熊 阅读(214) 评论(0)  编辑  收藏 所属分类: 算法


只有注册用户登录后才能发表评论。


网站导航:
 
<2010年1月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
31123456

导航

统计

常用链接

留言簿(1)

随笔分类

随笔档案

文章分类

文章档案

收藏夹

搜索

最新评论

阅读排行榜

评论排行榜