美文网首页
枚举排列

枚举排列

作者: Mr_Vetr | 来源:发表于2018-10-14 23:11 被阅读0次
    #include<cstdio>
    void print_permutation(int n,int *A,int cur){
        if(cur == n){
            for(int i=0; i<n; i++){
                printf("%d ",A[i]);
            }
            printf("\n");
        }else{
            for(int i=1; i<=n; ++i){
                int flag =1;
                for(int j=0; j<cur; j++)
                    if(A[j] == i)
                        flag =0;
                if(flag){
                    A[cur] = i;
                    print_permutation(n,A,cur+1);
                }
            }
        }
    }
    int main()
    {
        int n=3;
        int cur =0;
        int A[10];
        print_permutation(3,A,cur);
        return 0;
    }
    

    过程描述:

    1->1,2->1,2,3
    1,3->1,3,2
    当i =1 循环递归压栈
    在第二次的时候会有 1,2和1,3两种序列出现。
    所以结果是全排列。

    相关文章

      网友评论

          本文标题:枚举排列

          本文链接:https://www.haomeiwen.com/subject/amxxzftx.html