给定带排列的N个元素的集合,输出其全排列
#include<iostream>
#include<algorithm>
using namespace std;
const int N=5;//最后一个数字的下标
int a[N+1];
void perm(int k,int m)
{
if(k==m){
for(int i=0;i<=N;i++)cout<<a[i]<<" ";
cout<<endl;
return;
}
for(int i=k;i<=m;i++){
swap(a[k],a[i]);
perm(k+1,m);
swap(a[k],a[i]);
}
}
int main()
{
for(int i=0;i<=N;i++){
a[i]=i+1;
}
perm(0,N);
return 0;
}