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

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

           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) 評論(0)  編輯  收藏 所屬分類: Java

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

          導(dǎo)航

          統(tǒng)計

          公告

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

          我的郵件
          cnscud # gmail


          常用鏈接

          留言簿(15)

          隨筆分類(113)

          隨筆檔案(103)

          相冊

          友情鏈接

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

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 滕州市| 女性| 开鲁县| 大英县| 峨眉山市| 土默特左旗| 奈曼旗| 平舆县| 平利县| 论坛| 铜陵市| 集安市| 巴林右旗| 彝良县| 镇巴县| 伊吾县| 邢台市| 略阳县| 定南县| 建阳市| 交口县| 兴隆县| 凤山市| 遂溪县| 古交市| 昆明市| 吴桥县| 三台县| 葫芦岛市| 水城县| 鄄城县| 岫岩| 宁海县| 福泉市| 柳河县| 高淳县| 栖霞市| 东至县| 高密市| 响水县| 满洲里市|