关于数列的全排列问题:
如果我们要得到a[]={2,1,3}的全排列,我们可以有如下两种做法:
1、将数列排成升序:(1,2,3),如下写代码:
do{
cout << a[0] << " " << a[1] << " " << a[2] << endl;
}
while (next_permutation(a,a+3))
2、将数列排成降序:(3,2,1),如下写代码 :
do{
cout << a[0] << " " << a[1] << " " << a[2] << endl;
}
while (prev_permutation(a,a+3))
即可得到数列的全排列。
如果对vector<int> a进行全排列,则参数可以写成next_permutation(a.begin(),a.end())。