• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆-80  評論-24  文章-0  trackbacks-0
            給定一個數組,要求輸出其全排列。
            比如對1 2 3,其全排列數為3!。
            那么我們如何做呢?其實手寫全排列就能發現規律,我們會如下寫:
            1 2 3
            1 3 2
            2 1 3
            2 3 2
            3 2 1
            3 1 2
            這有什么規律呢?其實我們寫下的全排列是:1(2 3)! 和2(1 3)!和3(2 1)!
            所以就是一個典型的遞歸問題了:

             1 inline void swap(int *a, int *b) {
             2   int temp = *b; 
             3   *b = *a; 
             4   *a = temp;
             5 }
             6 
             7 void do_permutation(int *a, int k, int n) {
             8   int i;
             9   if (k >= n - 1) {
            10     for (i = 0; i < n; ++i) {
            11       printf("%d ", a[i]);
            12     }   
            13     printf("\n");
            14     return;
            15   }
            16   for (i = k; i < n; ++i) {
            17     swap(a + k, a + i); 
            18     do_permutation(a, k + 1, n); 
            19     swap(a + k, a + i); 
            20   }
            21 }
            22 
            23 void permutation(int *a, int n) {
            24   do_permutation(a, 0, n); 
            25 }
            posted on 2012-09-06 22:16 myjfm 閱讀(325) 評論(0)  編輯 收藏 引用 所屬分類: 算法基礎
            国产精品久久99| 嫩草影院久久99| 亚洲天堂久久久| 久久久久免费精品国产| av无码久久久久久不卡网站| 色综合合久久天天综合绕视看| 久久久久免费视频| 久久久久亚洲精品日久生情| 好属妞这里只有精品久久| 亚洲国产成人久久精品99| 久久AV高潮AV无码AV| 66精品综合久久久久久久| 97精品伊人久久久大香线蕉| 欧美精品一区二区精品久久| 久久无码中文字幕东京热| 丁香五月综合久久激情| 看久久久久久a级毛片| 久久久99精品成人片中文字幕 | 亚洲欧美成人综合久久久| 91久久精品电影| 久久久久AV综合网成人| 免费精品久久天干天干| 久久国产午夜精品一区二区三区| 精品久久久久久久无码| 久久天天躁夜夜躁狠狠躁2022| 国产精品欧美亚洲韩国日本久久| 久久婷婷五月综合色奶水99啪 | 国产成人精品久久亚洲高清不卡| 少妇久久久久久被弄高潮| 精品伊人久久久| 国内精品久久久久影院亚洲 | 日本精品久久久久影院日本| 99久久伊人精品综合观看| 国内精品久久国产大陆| 久久综合狠狠色综合伊人| 久久国产免费观看精品| 国产一级做a爰片久久毛片| 2022年国产精品久久久久| 国产精品久久久久影院嫩草| 99久久免费国产特黄| 日本免费久久久久久久网站|