集训
一、next_permutation
用来生成序列的下一个字典序排列的算法,若当前排列为最后一个字典序排列,则返回\(false\),否则返回\(true\)。属于\(algorithm\)库。单次使用时间复杂度为\(O(n)\),若生成一个序列的全排列的总时间复杂度为\(O(n*n!)\)(好鸡肋的时间复杂度)
举例使用
#include<iostream>
#include<algorithm>
using namespace std;
int n,a[50];
signed main(){
ios::sync_with_stdio(false);
int a[]={1,2,3,4,5,6,7,8,9};
do{
for(int i=0;i<=8;i++) cout<<a[i]<<" ";
cout<<'\n';
}while(next_permutation(a,a+9));
return 0;
}