C++用回溯方法做全排列
2018-07-20 来源:open-open
#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; }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。
上一篇:C语言实现汉诺塔算法
下一篇:C++胜者树
最新资讯
热门推荐