全排列数组
#include <iostream>
using namespace std;
const int N = 30;
int a[] = { 1,2,3,4,5,6 };
bool b[N];
int newa[N];
bool dfs(int begin, int end)
{
if (begin == end)
{
for (int i = 0; i < end; i++)
{
cout << newa[i] << ' ';
}
cout << endl;
return true;
}
for (int i = 0; i < end; i++)
{
if (!b[i])
{
b[i] = true;
newa[begin] = a[i];
dfs(begin + 1, end);
b[i] = false;
}
}
return false;
}
void slove()
{
int n=4;
n = sizeof(a)/sizeof(a[0]);
dfs(0, n);
}
signed main()
{
ios::sync_with_stdio;
cin.tie(0);
cout.tie(0);
int num = 1;
while (num--)
{
slove();
}
}