不重復的排列組合示例

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

           1 /**
           2  * 各字符不重復的組合, 組合數小于等于最大可能性(否則就重復了).
           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(飛云小俠) 閱讀(434) 評論(0)  編輯  收藏 所屬分類: Java

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

          導航

          統計

          公告

          文章發布許可
          創造共用協議:署名,非商業,保持一致

          我的郵件
          cnscud # gmail


          常用鏈接

          留言簿(15)

          隨筆分類(113)

          隨筆檔案(103)

          相冊

          友情鏈接

          技術網站

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 建水县| 上饶县| 屏南县| 承德市| 雷山县| 岫岩| 宜春市| SHOW| 拜城县| 夏河县| 石嘴山市| 白河县| 洱源县| 修水县| 湘西| 西峡县| 酉阳| 德惠市| 东城区| 天长市| 乐至县| 乌海市| 登封市| 灵山县| 松桃| 阿坝| 维西| 太仆寺旗| 石狮市| 樟树市| 青浦区| 临海市| 大同县| 涞水县| 大港区| 札达县| 濮阳县| 罗源县| 喀喇| 将乐县| 昭苏县|