码迷,mamicode.com
首页 > 其他好文 > 详细

枚举:全排列

时间:2015-04-08 00:52:37      阅读:249      评论:0      收藏:0      [点我收藏+]

标签:

枚举:全排列

枚举:全排列

递归回溯实现的全排列:

// CreateTime: 2015-04-07 23:26:57

#include <iostream>

using namespace std;

int a[10];
int v[10];

void dfs(int n) {
    if (n == 10) {
        for (int i = 1; i <= 9; i++) {
            cout << a[i];
        }
        cout << endl;
        return;
    }
    for (int i = 1; i <= 9; i++) {
        if (!v[i]) {
            v[i] = 1;
            a[n] = i;
            dfs(n+1);
            v[i] = 0;
        }
    }
}

int main(void) {
    dfs(1);

    return 0;
}

algorithm库函数自带的全排列, next_permutation

// CreateTime: 2015-04-07 23:32:24

#include <iostream>
#include <algorithm>

using namespace std;

int a[10];
int main(void) {
    for (int i = 0; i <= 9; i++) {
        a[i] = i+1;
    }

    do {
        for (int i = 0; i <= 2; i++) {
            cout << a[i];
        }
        cout << endl;
    } while (next_permutation(a, a+3));

    return 0;
}

algorithm库函数自带的全排列, prev_permutation

// CreateTime: 2015-04-07 23:32:24

#include <iostream>
#include <algorithm>

using namespace std;

int a[10];
int cmp(int a, int b) { return a > b; }

int main(void) {
    for (int i = 0; i <= 9; i++) {
        a[i] = i+1;
    }

    sort(a, a+9, cmp);
    do {
        for (int i = 0; i <= 2; i++) {
            cout << a[i];
        }
        cout << endl;
    } while (prev_permutation(a, a+3));

    return 0;
}

枚举:全排列

标签:

原文地址:http://www.cnblogs.com/sunznx/p/4401059.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!