全排列函数(next_permutation)

顾名思义,这个函数就是用来求数组的全排列的,至于怎么用,看下面的介绍:

这是一个c++函数,包含在头文件algorithm里面,这个函数可以从当前的数组的大小按照字典序逐个递增的顺序排列

看下面的模板

int a[];
do
{
 
}while(next_permutation);

下面代码可以输出1~n的全排列

#include <stdio.h>
#include <algorithm>
using namespace std;
int main(){
    int n;
    while(scanf("%d",&n)&&n){
        int a[1000];
        for(int i=0;i<n;i++){
            scanf("%d",&a[i]);
        }
        sort(a,a+n);//可以自行测试一下删除后的结果
        do{
            for(int i=0;i<n;i++)
                printf("%d ",a[i]);
            printf("\n");
        }while(next_permutation(a,a+n));
    }
    return 0;
}

上面代码有一个sort,但是如果没有的话,只会出现从当前的大小按字典序逐个增加的排序

posted @ 2018-08-06 17:50  执||念  阅读(3870)  评论(0编辑  收藏  举报