美文网首页
C语言-全排列

C语言-全排列

作者: 草莓2020 | 来源:发表于2020-03-13 23:23 被阅读0次
//打印数组元素
void printfArray(int a[], int num) {
    for (int i = 0; i < num; ++i) {
        printf("%d", a[i]);
    }
    printf("\n");
}

//数组元素交换
void swap(int a[], int i, int j) {
    int temp = a[i];
    a[i] = a[j];
    a[j] = temp;
}

//参数列表:数组 全排列的起始下标 结束下标 数组元素个数
void full_Permutation(int a[], int startIndex, int endIndex, int num) {
    if (startIndex == endIndex) {
        printfArray(a, num);
    } else {
        for (int i = startIndex; i <= endIndex; ++i) {
            swap(a, startIndex, i);
            full_Permutation(a, startIndex + 1, endIndex, num);
            swap(a, startIndex, i);
        }
    }
}

//参数列表:数组 数组元素个数
void fullPermutation(int a[], int num) {
    full_Permutation(a, 0, num - 1, num);
}

//调用示例
int main() {
    int a[] = {1, 2, 3};
    fullPermutation(a, 3);
    return 0;
}

相关文章

  • C语言-全排列

  • c语言实现全排列

    1.源码实现 2.编译源码 3.运行及其结果

  • C语言递归实现全排列Perm

    就是第一个数分别以后面的数进行交换 假设输入E = (a , b , c), 则 perm(E)= a.perm(...

  • C/C++全排列函数

    C++中有全排列函数next_permutation,前提是数据必须有序,因此先对其进行排序,再使用该函数: 全排...

  • 字符串全排列

    经常会遇到字符串全排列的问题。例如:输入为{‘a’,’b’,’c’},则其全排列组合为abc,acb,bac,bc...

  • C++全排列算法

    参考:【基础算法】- 全排列 代码参考上面链接,花了一些功夫才读懂,添加了注释。 经验是:读代码时拿纸笔模拟单步执...

  • 花式全排列,不服不行(康拓展开)

    偶尔做了些蓝桥杯练习题,发现一题全排列,看着简单以为C++全排列库直接暴力就行,然而……答案数据高达229526多...

  • 全排列解法总结(Java语言)

    最近在准备蓝桥杯,所以今天想对全排列的一些解法进行总结,这样也方便于以后的复习。 样例问题 这里我选择了一个较为容...

  • R语言-组合全排列问题

    问题1:5组数据,从每组数据中抽取n个全组合,列出所有组合 结果1 问题2:5组数据,随机从每组数据中抽取n个数据...

  • 全排列

    问题描述 求1-n的所有按字典序的全排列 C++实现

网友评论

      本文标题:C语言-全排列

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