c_cpp 全排列实现

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 全排列实现相关的知识,希望对你有一定的参考价值。

#include <iostream>
#include <stdio.h>
#include <string.h>

using namespace std;

void perm(int list[], int k, int m)
{
    if (k == m)
    {
        for (int i = 0; i <= m; i++)
        {
            printf("%d", list[i]);
        }
        cout << endl;
    }
    else
    {
        for (int i = k; i <= m; i++)
        {
            swap(list[k], list[i]);
            perm(list, k+1, m);
            swap(list[k], list[i]);
        }
    }

}

int main()
{
    int list[] = {1, 2, 3, 4, 5};
    int len = sizeof(list) / sizeof(list[0]);
    perm(list, 0, len-1);
    printf("len: %d\n", len);
    return 0;
}

以上是关于c_cpp 全排列实现的主要内容,如果未能解决你的问题,请参考以下文章

递归实现全排列

Java实现全排列

全排列和全组合实现

全排列 递归实现

PHP实现全排列(递归算法)

算法——全排列