不重復(fù)的排列組合示例

          昨天看到個(gè)帖子, 然后想了想寫出一段程序來(lái).  有空該補(bǔ)補(bǔ)排列組合的知識(shí)了.

           1 /**
           2  * 各字符不重復(fù)的組合, 組合數(shù)小于等于最大可能性(否則就重復(fù)了).
           3  * 
           4  * @author scud(飛云)
           5  */
           6 public class ShortCombineTest
           7 {
           8     static int count = 0;
           9 
          10     public static void main(String[] args)
          11     {
          12         String s = "123456"//all items content
          13         int howmany = 3//how many object
          14 
          15         char[] c = s.toCharArray();
          16         char[] dest = new char[howmany];
          17 
          18         combine(c, dest, howmany, s.length(), 0);
          19 
          20         System.out.println("max combine:" + count);
          21     }
          22 
          23     public static void combine(char[] array, char[] dest, int howmany, int maxitem, int index)
          24     {
          25         //break & end
          26         if (index == howmany)
          27         {
          28             System.out.println(dest);
          29             count++;
          30             return;
          31         }
          32 
          33         while(array.length>0)
          34         {
          35             dest[index] = array[0];
          36             char[] nextarray = getLeftChar(array, 0);
          37             array = nextarray;
          38             combine(nextarray, dest, howmany, maxitem, index + 1);
          39         }
          40     }
          41 
          42     public static char[] getLeftChar(char[] c, int index)
          43     {
          44         char[] left = new char[c.length - 1];
          45 
          46         for (int i = 0, j = 0; i < c.length; i++)
          47         {
          48             if (i != index)
          49             {
          50                 left[j] = c[i];
          51                 j++;
          52             }
          53         }
          54 
          55         return left;
          56     }
          57 
          58 
          59 }
          60 


          posted on 2010-07-29 09:55 Scud(飛云小俠) 閱讀(440) 評(píng)論(0)  編輯  收藏 所屬分類: Java

          <2010年7月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導(dǎo)航

          統(tǒng)計(jì)

          公告

          文章發(fā)布許可
          創(chuàng)造共用協(xié)議:署名,非商業(yè),保持一致

          我的郵件
          cnscud # gmail


          常用鏈接

          留言簿(15)

          隨筆分類(113)

          隨筆檔案(103)

          相冊(cè)

          友情鏈接

          技術(shù)網(wǎng)站

          搜索

          積分與排名

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 唐海县| 合山市| 稻城县| 内黄县| 高雄市| 临洮县| 利津县| 姚安县| 青冈县| 晋中市| 安阳市| 陆良县| 太谷县| 曲阜市| 镇安县| 乌审旗| 广灵县| 张家川| 澄江县| 英超| 长沙市| 延长县| 册亨县| 西安市| 梁河县| 蒙山县| 东源县| 斗六市| 双流县| 龙门县| 东平县| 盐城市| 芦山县| 通江县| 山东省| 南投市| 湖北省| 平乡县| 西峡县| 图木舒克市| 中宁县|