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

          昨天看到個(gè)帖子, 然后想了想寫出一段程序來.  有空該補(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(飛云小俠) 閱讀(434) 評(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)論排行榜

          主站蜘蛛池模板: 鄂托克旗| 斗六市| 绥中县| 莱西市| 屏东县| 桐庐县| 沈阳市| 林州市| 武夷山市| 平乐县| 天等县| 米易县| 正阳县| 衡南县| 小金县| 富锦市| 盐城市| 昔阳县| 正安县| 佳木斯市| 翼城县| 万盛区| 东山县| 略阳县| 定南县| 文山县| 凌海市| 万盛区| 都江堰市| 星子县| 祁东县| 綦江县| 天柱县| 楚雄市| 琼结县| 安康市| 罗定市| 湛江市| 博兴县| 方山县| 琼结县|