输出数组的全排列

2017-08-26  本文已影响0人  Keizo

思想:

#include <iostream>
using namespace std;

void perm(int list[], int k, int m)
{
    if (k == m) //递归到最后一个数,输出list
    {
        for (int i = 0; i < m; i++) {
            cout<<list[i]<<" ";
        }
        cout<<endl;
        return;
    }
    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,6} ;
    perm(list, 0, sizeof(list) / sizeof(int));
    return 0;
}
上一篇 下一篇

猜你喜欢

热点阅读