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