CI8.4--求一个串的全排列

来源:互联网 发布:炫彩表白软件 编辑:程序博客网 时间:2024/04/28 13:30

求一个串的全排列。

思路:

全排列实际上就是前后元素不断交换得到的结果。

#include <iostream>#include <vector>using namespace std;void Perm(vector<int>& ivec, int begin){if (begin == ivec.size()){for (int i = 0; i < ivec.size(); ++i)cout << ivec[i] << ' ';cout << endl;}for (int i = begin; i < ivec.size(); ++i){swap(ivec[i], ivec[begin]);Perm(ivec, begin+1);swap(ivec[i], ivec[begin]);}}void main(){int a[] = {1, 2, 3, 4};vector<int> ivec(a, a + 4);Perm(ivec, 0);}