将123所有的排序可能性输出
#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
//https://blog.csdn.net/jopus/article/details/18998403
void swap(int &a,int &b){
int temp=a;
a=b;
b=temp;
}
void perm(int list[],int a,int b){//a前缀位置,b是排列的数目
if(a==b-1){//前缀是最后一个位置,输出
for(int i=0;i<b;i++){
cout << list[i];
}
cout << endl;
}
else{
for(int i=a;i<b;i++){
swap(list[a],list[i]);//交换前缀,产生下一个前缀
perm(list,a+1,b);
swap(list[a],list[i]);//换回来,继续做上一个前缀排列
}
}
}
int main(){
int list[]={1,2,3};
perm(list,0,3);
return 0;
}