枚举排列

来源:互联网 发布:长沙蓝狐网络 编辑:程序博客网 时间:2024/05/19 23:53
#include<iostream> #include<cstring>#include<algorithm>using namespace std;const int n=3;void print_permutation(int n,int* A,int ch){    if(n==ch){        for(int i=0;i<n;i++)            printf("%d",A[i]);        printf("\n");    }    else{        for(int i=1;i<=n;i++){            int ok=1;            for(int j=0;j<ch;j++){                if(A[j]==i)                    ok=0;             }            if(ok){                A[ch]=i;                print_permutation(n,A,ch+1);            }        }    }}void STL_print_permutation(int n,int* A){    for(int i=1;i<=n;i++)   A[i-1]=i;    do{        for(int i=0;i<n;i++)    printf("%d",A[i]);        printf("\n");    }while(next_permutation(A,A+n));    return ;}int main(){    int a[10];    memset(a,0,sizeof(a));    printf("My_permutation:\n");    print_permutation(n,a,0);    printf("STL_permutation:\n");    STL_print_permutation(n,a);    return 0;}
原创粉丝点击