C++ STL库提供了用于对一维数组元素全排列的函数:next_permutation(a, a + n) 和prev
_permutation(a, a + n)
代码如下:
#include <iostream>
#include <algorithm>
using namespace std;
const int maxn = 100001;
int a[maxn];
int main()
{
int i, n;
while (cin >> n && n)
{
for (i = 0; i < n; i++)
a[i] = i + 1;
sort(a, a + n); // 排序
do
{
for (i = 0; i < n; i++)
cout << a[i] << " ";
cout << endl;
}while (next_permutation(a, a + n)); // 全排列
}
return 0;
}