高手进来帮帮忙看看这个全排列算法怎么做?
求对a[]={1,1,1,1,-1,-1,-1,-1}进行无重复的全排列算法。要求:1.程序要具有通用性,至少要能实现任意N个1和N个-1的全排列;2.不要用树的知识;谢谢了!
回复 楼主 xichong
#include <iostream>#include <algorithm>
using namespace std;
int main()
{
int i, a[]={1,1,1,1,-1,-1,-1,-1};
sort(a, a+8);
do
{
for (i = 0; i < 8; i++) cout << a[i] << " ";
cout << endl;
}while (next_permutation(a, a+8));
return 0;
}
至于任意 N 的, 你把数组改成自己输入就行了。