一 next_permutation介绍:
这个函数是为了要求出数字或字母全排列所要用到的函数,基础的求全排列方法是递归,感兴趣的可以自己去查找一下。
二 next_permutation的基本用法
next_permutation只能获得下一个排列,如果要获得全排列,那么就需要先对数组进行升序排序
prev_permutation只能获得上一个排列,如果要获得全排列,那么就需要先对数组进行降序排序
基本定义如下:
next_permutaion(起始地址,末尾地址+1)
next_permutaion(起始地址,末尾地址+1,自定义排序)
1、普通数组全排列
普通数组可以通过数组名表示地址,非常容易实现,代码如下
#include <bits/stdc++.h>
#define endl '\n'
using namespace std;
const int N = 1e5+10;
int main()
{
int a[4]={2,1,4,3};
sort(a,a+4);
do{
for(int i=0;i<4;i++){
cout<<a[i]<<' ';
}
out<<endl;
}while(next_permutation(a,a+4));
}
运行结果如下:
1 2 3 4
1 2 4 3
1 3 2 4
1 3 4 2
1 4 2 3
1 4 3 2
2 1 3 4
2 1 4 3
2 3 1 4
2 3 4 1
2 4 1 3
2 4 3 1
3 1 2 4
3 1 4 2
3 2 1 4
3 2 4 1
3 4 1 2
3 4 2 1
4 1 2 3
4 1 3 2
4 2 1 3
4 2 3 1
4 3 1 2
4 3 2 1
基本用法就是这个,常用的方式就是这个,希望能给你带来便利。