全排列(我开始怀疑自己的智商了....)

就一个全排列问题我看了四个小时
一个是效率不高
另一个是可能脑子混沌了
还是递归搞得不够明白
我也是很绝望啊。操...
以下源码
// ConsoleApplication7.cpp : 定义控制台应用程序的入口点。
//

include "stdafx.h"

const int maxn = 11;
int n, p[maxn], hashtable[maxn] = { false };
void generatep(int index)
{
printf("让我看看你到底执行了多少次 ");
if (index == n + 1)
{
for (int i = 1;i <= n;i++)
{

		printf("循环ing%d", p[i]);
	}
	printf("
");
	return;
}
for (int x = 1;x <= n;x++)
{
	printf("step1 x:%d
",x);
	if (hashtable[x] == false)
	{
		p[index] = x;
		hashtable[x] = true;
		printf("step2
");
		generatep(index + 1);
		printf("step3 x:%d
",x);
		hashtable[x] = false;
	}
}

}
int main()
{
n = 3;
generatep(1);
return 0;
}

原文地址:https://www.cnblogs.com/kongk/p/8642469.html