采用递归生成排列

话不多说,代码如下:

#include<iostream>
using namespace std;

inline void Swap(int &a, int &b)
{
    int temp = a;
    a = b;;
    b = temp;
}

void Perm(int list[], int begin, int end)
{
    if (begin == end)
    {
        for (int i = 0; i <= end; i++)
        {
            cout << list[i];
        }
        cout << endl;
    }
    else
    {
        for (int i = begin; i <= end; i++)
        {
            Swap(list[begin], list[i]);
            Perm(list, begin + 1, end);
            Swap(list[begin], list[i]);
        }
    }
}

int main()
{
    int arr[3] = { 1, 2, 3 };
    Perm(arr, 0, 2);
    return 0;
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-25 17:13
点赞 评论 收藏
分享
07-02 10:39
门头沟学院 Java
Steven267:说点真实的,都要秋招了,还没有实习,早干嘛去了,本来学历就差,现在知道急了,而且你这个简历完全可以写成一页,劣势太大了,建议转测试
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务