集训

一、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;
}
posted @ 2025-09-12 16:09  晏清玖安  阅读(29)  评论(0)    收藏  举报