posts - 195, comments - 34, trackbacks - 0, articles - 1

          輸出排列的遞歸實現

          Posted on 2007-04-01 21:31 小強摩羯座 閱讀(235) 評論(0)  編輯  收藏
          對于組合的遞歸算法,我沒有想出來。我不我會抱持這個問題的。

          排列(全排列)的遞歸算法一般的書上都有其算法,我只是寫出來玩玩。遞歸的理解還是感覺有些難。
           1//產生排列的遞歸算法
           2//    1.n==1,Perm(R) = (r)
           3//    2.n > 1, perm(R) = (r1)perm(R1), (r2)Perm(R2);
           4    static int counter = 1;
           5    static void perm(char []list, int k, int m)
           6    {
           7        if(k == m)
           8            System.out.println((counter++)+ " :"+ Arrays.toString(list));
           9        else
          10        {
          11            for(int i=k; i <= m;i++)
          12            {
          13                swap(list,i, k);            
          14                perm(list, k+1, m);            
          15                swap(list,i, k);
          16            }

          17        }

          18    }

          19    static void swap(char[] list, int i, int k)
          20    {
          21        char tmp;
          22        tmp = list[k];
          23        list[k] = list[i];
          24        list[i] = tmp;
          25    }
          不過也看到上學期有同學去迅雷面試中就有這個題目的。所以簡單不簡單看知道不知道,理解的深還是淺。


          只有注冊用戶登錄后才能發表評論。


          網站導航:
          博客園   IT新聞   Chat2DB   C++博客   博問  
           
          主站蜘蛛池模板: 湖北省| 永昌县| 十堰市| 浙江省| 青海省| 巴彦淖尔市| 康乐县| 台南县| 翁牛特旗| 乌兰浩特市| 上饶市| 海安县| 育儿| 双牌县| 阳新县| 盘山县| 天镇县| 琼结县| 苍溪县| 金秀| 蒲江县| 南丰县| 麟游县| 南陵县| 简阳市| 收藏| 怀安县| 洛阳市| 随州市| 永靖县| 福海县| 铁岭县| 德惠市| 棋牌| 河西区| 平陆县| 沾益县| 马龙县| 莆田市| 保定市| 易门县|