C++ 输出全排列 简单递归 N皇后问题

做C++程序题需要用到1-9的全排列,然而比较菜还不能熟练地写递归,在网上找了几个全排列算法又不太适合自己的程序,所以我把前几天做过的N皇后问题的递归算法改进了一下,使其可以输出全排列,具体算法如下:


#include 

using namespace std;

#define max 4
int n;
int a[max]; //记录排序后的数字串 

int Pailie(int pos)
{
	for(int i = 0; i < pos - 1; i++)  //检测a[pos - 1]位置上是否与已有的数字重复,若重复则回溯
	{
		if(a[pos - 1] == a[i])
			return 0;
	}
	
	if(pos == max)   //若已经得到一个全排列,就把它输出
	{
		for(int i = 0; i < max; i++)
			cout<

缺点是时间复杂度较大。


其它算法:http://blog.csdn.net/a358463121/article/details/45543879

2n皇后解法:http://www.2cto.com/kf/201403/285903.html



你可能感兴趣的:(C++练习题目)