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

          輸出排列的遞歸實現

          Posted on 2007-04-01 21:31 小強摩羯座 閱讀(236) 評論(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    }
          不過也看到上學期有同學去迅雷面試中就有這個題目的。所以簡單不簡單看知道不知道,理解的深還是淺。


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


          網站導航:
           
          主站蜘蛛池模板: 收藏| 通许县| 武安市| 水城县| 剑阁县| 平果县| 夏津县| 昌平区| 宁国市| 丹巴县| 绥芬河市| 射阳县| 绩溪县| 盘锦市| 盐城市| 北安市| 晋中市| 时尚| 出国| 会东县| 柘荣县| 旅游| 芦山县| 双城市| 台北市| 怀远县| 曲靖市| 望奎县| 墨玉县| 南靖县| 和平县| 天水市| 当雄县| 广昌县| 青冈县| 无为县| 买车| 万载县| 甘德县| 临武县| 囊谦县|