c++的STL中提供了一个库函数 next_permutation,包含它的头文件是< algorithm >
它的作用是输出当前排列的下一个排列。利用它可以很快打印可重集的全排列
#include<cstdio>
#include<algorithm>
using namespace std;
const int maxn=1000;
int main(void)
{
int p[maxn];
int n;scanf("%d",&n);
for(int i=0;i<n;++i)
{
scanf("%d",&p[i]);
}
sort(p,p+n);
do
{
for(int i=0;i<n;++i)
printf("%d ",p[i]);
printf("\n");
}while(next_permutation(p,p+n));
return 0;
}
如有不当之处欢迎指出!