下面这个代码是在学习了算法笔记之后,觉得非常简便,于是收藏一下。
具体代码如下:(这里是实现4个数的全排列,且从1开始排)
#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;
const int maxn = 11;
int n, P[maxn], hashTable[maxn] = { false };
void generate(int index)
{
if (index == n + 1)
{
for (int i = 1; i <= n; i++)
printf("%d", P[i]);
printf("\n");
return;
}
for (int x = 1; x <= n; x++)
{
if (hashTable[x] == false)
{
P[index] = x;
hashTable[x] = true;
generate(index + 1);
hashTable[x] = false;
}
}
}
int main()
{
n = 4;
generate(1);
return 0;
}