递归实现全排列
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
void Swap(int &a,int &b)//在对变量的值进行改变的时候要加上&
{
int temp=a;
a=b;
b=temp;
}
void Prem(int lists[],int k,int m)
{
if(k==m)
{
for(int i=0;i<=m;i++)
cout<<lists[i]<<" ";
cout<<endl;
}
else
{
for(int i=k;i<=m;i++)
{
Swap(lists[k],lists[i]);
Prem(lists,k+1,m);
Swap(lists[k],lists[i]);
}
}
}
int main()
{
int m;int lists[100];
cin>>m;
m=m-1;
for(int i=0;i<=m;i++)
scanf("%d",&lists[i]);
Prem(lists,0,m);
return 0;
}