一、
对于一个含有n个元素的数组全排列,一共有n!个情况。
二、
1.头文件
#include<algorithm>
2.方法
(1)next_permutation:求下一个排列组合
next_permutation(arr,arr+n);//其中arr是数组开始位置,arr+n是数组结束位置+1
返回类型为true和false,存在下一个序列返回true,不存在返回false,排列好的数列会在数组中保存。
在使用该函数前,需要对数组进行升序排序(sort)
模版:
int arr[N];
sort(arr,arr+n);
do
{
for (int i=0;i<n;++)
{
cout<<arr[i];
}
}
while(next_permutation(arr,arr+n));
(2)prev_permutation:求上一个排列组合
在使用该函数前,需要对数组进行降序排序 sort(arr,arr+n,cmp)
模版:
int arr[N];
sort(arr,arr+n,cmp);
do
{
for (int i=0;i<n;++)
{
cout<<arr[i];
}
}
while(prev_permutation(arr,arr+n));