比如说集合{1,2,3}的全排列按字典排序后如下:
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
递归思想
代码如下
#include <iostream>
#include<algorithm>
using namespace std;
int n;
int a[10];
void gg(int a[], int k, int l)
{
if (k == l)
{
for (int i = 1; i <= n; i++)
{
cout << a[i]<<" ";
}
cout << endl;
return;
}
else
{
for (int j = k; j <= n; j++)
{
swap(a[k], a[j]);
gg(a, k + 1, l);
swap(a[k], a[j]);
}
}
}
int main()
{
cin >> n;
for (int i = 1; i <= n; i++)
{
a[i] = i;
}
gg(a, 1, n);
return 0;
}