神奇的 algorithm

next_permutation

神奇的 algorithm

这个函数每运行一次就可以把数组排成下一个字典序数列;与之对应的是prev_permutation,即排出上一个字典序
很容易得出总排列数为: \(A_{n}^{n}=n!\)

#include<iostream>
#include<algorithm>
using namespace std;

int a[10];
int sum = 1;

int main()
{
	int n;
	cin >> n;
	for (int i = 1; i <= n; i++)
	{
		a[i] = i;
		sum *= i;
		printf("%5d", i);
	}
	cout << endl;
	for (int i = 1; i < sum; i++)
	{
		next_permutation(a + 1, a + n + 1);
		for (int j = 1; j <= n; j++) printf("%5d", a[j]);
		cout << endl;
	}
	return 0;
}
上一篇:WebADI_案例实施03_利用FND_LOAD安装和迁移WEBADI以及设定(案例)


下一篇:【刷题】【cf】C. Division by Two and Permutation