#include<bits/stdc++.h>
using namespace std;
int n;
void next(int *p)
{
int i,j,t;
for(i=n;i>=2;i--)
if(p[i-1]<p[i])
break;
for(j=n;j>=i;j--)
if(p[i-1]<p[j])
{
t=p[j];
p[j]=p[i-1];
p[i-1]=t;
break;
}
sort(p+i,p+n);
}
int main()
{
int i,q[12]={0};
cin>>n;
long p=1;
for(i=1;i<=n;i++)
q[i]=i,p*=i;
if(n==1)
return !puts("1");
while(p--)
{
for(i=1;i<=n;i++)
cout<<" "<<q[i];
cout<<endl;
next(q);
}
return 0;
}
这是一个求输进去的n的所有全排列的算法的代码 为什么这个子函数最后的sort不起作用呢
sort的第二个函数参数错了