自己补全吧...
void Perm(list[],int k,int m) //k表示前缀的位置,m是要排列的数目.
{
if(k==m-1) //前缀是最后一个位置,此时打印排列数.
{
for(int i=0;i<m;i++)
{
printf("%d",list[i]);
}
printf("\n");
}
else
{
for(int i=k;i<m;i++)
{
Swap(list[k],list[i]); //交换前缀,使之产生下一个前缀.
Perm(list,k+1,m);
Swap(list[k],list[i]); //将前缀换回来,继续做上一个的前缀排列.
}
}
}
inline void Swap(int &a,int &b) //此处为引用,交换函数.函数调用多,故定义为内联函数.
{
int temp=a,a=b,b=temp;
}