1. 程式人生 > >枚舉所有排列-STL中的next_permutation

枚舉所有排列-STL中的next_permutation

n) i++ 最小 img sort urn next ges pan

枚舉排列的常見方法有兩種 一種是遞歸枚舉 另一種是STL中的next_permutation

//枚舉所有排列的另一種方法就是從字典序最小排列開始,不停的調用"求下一個排列"的過程 
#include<cstdio>
#include<algorithm>
using namespace std;
int main()
{
    int n,p[10];
    scanf("%d",&n);
    for(int i=0;i<n;i++)
    scanf("%d",&p[i]);
    sort(p,p+n);//得到最小排列
do{ for(int i=0;i<n;i++) printf("%d ",p[i]); printf("\n"); } while(next_permutation(p,p+n)); return 0; }

技術分享

枚舉所有排列-STL中的next_permutation