美文网首页
枚举排列

枚举排列

作者: 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两种序列出现。
所以结果是全排列。

相关文章

  • 枚举排列

    过程描述: 1->1,2->1,2,31,3->1,3,2当i =1 循环递归压栈在第二次的时候会有 1,2和1,...

  • 枚举排列

    生成1-n的排列 具体题目为,输入整数n,按字典序大小从小到大顺序输出前n个数的所有排列。例如输入n=3,则要求得...

  • 《算法竞赛入门经典》第七章学习笔记

    枚举排列 生成1~n的排列 生成可重集的排列 利用STL生成排列 子集生成 增量构造法 位向量法 二进制法

  • leetcode指北---DFS

    DFS,也就是深搜,实质就是枚举。如果题目问的是一共多少种方法,多少种排列...尽管用。 全排列问题: 全排列:给...

  • 第四讲 枚举法一

    第四讲 枚举法一 内容概述 掌握枚举的一般方法。学会按照一定顺序,有规律地进行枚举,做到“不重不漏”;应用字典排列...

  • js排列组合--递归枚举

    题目:在1,2,3,4,5 五个数中,我们随机选取 3个数。问有多少种取法?并且把每种取出数的方法列举出来。 乍看...

  • 使用C++ STL的next/prev_permutation函

    使用C++ STL的next_permutation函数可以简单的枚举出一个升序排列的字符串的全排列,它包含在头文...

  • Object.entries()

    Object.entries() 方法返回一个给定对象自身可枚举属性的键值对数组,其排列与使用 for...in ...

  • Object.entries() 给定对象自身可枚举属性的键值

    Object.entries()**`方法返回一个给定对象自身可枚举属性的键值对数组,其排列与使用 (for......

  • 对象根据某个数字值字段排序

    **Object.entries()**方法返回一个给定对象自身可枚举属性的键值对数组,其排列与使用 for......

网友评论

      本文标题:枚举排列

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