C++用回溯方法做全排列

jopen 9年前發布 | 924 次閱讀 C/C++

#include<cstring>

include<iostream>

define LEN 10

using namespace std; char elem[LEN] = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j' }; char result[LEN]; bool filled[LEN]; void permutation(int k, int n) { if (k == n) { for (int i = 0; i < n; i++) { cout << result[i] << " ";

    }
    cout << endl;
} else {
    for (int i = 0; i < n; i++) {
        if (!filled[i]) {
            filled[i] = true;
            result[k] = elem[i];
            permutation(k + 1, n);
            filled[i] = false;
        }
    }
}

} int main() { memset(result, 0, sizeof(result)); memset(filled, false, sizeof(filled)); permutation(0, LEN); return 0; }</pre>

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!