首页 > 代码库 > 排列组合函数next_permutation()

排列组合函数next_permutation()

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

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

#include <bits/stdc++.h>using namespace std;#define Maxn 10int 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 10int 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()