题目描述:输出1~8的全排列。
如果需要去全排列的场景比较简单,可以直接用c++STL的库函数next_permutation(),他按字典序输出下一个排列。在使用之前,先用sort()给数据排序,得到最小排列,然后每调用next_permutation()一次,就得到一个大一点的排列。
注意:next_permutation()的返回值:如果没有下一个排列组合,返回false,否则返回true。
题解:
#include<bits/stdc++.h>
using namespace std;
int main(){
int a[]={1,4,2,3,5,7,6,8};
int len=sizeof(a) / sizeof(a[0]);//得到数组的长度
sort(a,a+len);//将数组排序
do{
for(int i=0;i<len;i++){
cout<<a[i]<<" ";
}
cout<<endl;
}
while(next_permutation(a,a+len));
return 0;
}