简单看了一下递归法,求全排列,非字典序,有点明白,又不太明白,放着以后有时间再消化 #include<iostream> #include<algorithm> using namespace std; int s=0; int perm(int* list,int k,int m) { if(k>m) { for(int i=0;i<=m;i++) cout<<list[i]<<" "; s++; cout<<endl; return s; } else{ for(int i=k;i<=m;i++) { swap(list[i],list[k]); perm(list,k+1,m); swap(list[i],list[k]); } } return s; } int main() { int a[]={1,2,3,4,5}; cout<<perm(a,0,4)<<endl; return 0; }