排列组合函数next_permutation()

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了排列组合函数next_permutation()相关的知识,希望对你有一定的参考价值。

next_permution(),按照字典序进行排列组合,

括号里的参数为类似sort里面的参数,用法相同

#include <bits/stdc++.h>
using namespace std;
#define Maxn 10

int main(){
    int a[3];
    a[0]=1;a[1]=2;a[2]=3;
    do{
        cout<<a[0]<<" "<<a[1]<<" "<<a[2]<<endl;
    }while (next_permutation(a,a+3)); //参数3指的是要进行排列的长度
}
//如果存在a之后的排列,就返回true。如果a是最后一个排列没有后继,返回false,每执行一次,a就变成它的后继

  技术分享

如果交换a[0],a[1],a[2]的大小,排列的次数会改变

#include <bits/stdc++.h>
using namespace std;
#define Maxn 10

int main(){
    int a[3];
    a[0]=3;a[1]=2;a[2]=1;
    do{
        cout<<a[0]<<" "<<a[1]<<" "<<a[2]<<endl;
    }while (next_permutation(a,a+3)); //参数3指的是要进行排列的长度
}

  技术分享

以上是关于排列组合函数next_permutation()的主要内容,如果未能解决你的问题,请参考以下文章

C++STL的next_permutation

STL::next_permutation();

next_permutation( ) 和prev_permutation( ) 全排列函数

next_permutation(全排列算法)

STL中关于全排列next_permutation以及prev_permutation的用法

prev_permutation()和next_permutation()