zoukankan      html  css  js  c++  java
  • 全排列问题

    题目:排列问题,设R={r1,r2...rn}是要进行排列的n个元素,求R的全排列perm(R);

            a、递归关系 Ri=R-{ri}

                             perm(R)=U(ri)perm(Ri)

            b、终止条件:n=1时

            c、参数 int k,int  m

    代码如下:

    #include <iostream>
    #include <algorithm>
    #include <cstdio>
    #include <cstring>
    #include <cmath>
    #include <map>
    #include <vector>
    #include <stack>
    using namespace std;
    int n;
    int a[1000];
    
    void perm(int k,int m)
    {
        if(k==m)
        {
            for(int i=1; i<=n; i++)
                cout<<a[i]<<" ";
            cout<<endl;
        }
        else
            for(int i=k; i<=m; i++)
            {
                swap(a[i],a[k]);
                perm(k+1,m);
                swap(a[i],a[k]);
            }
    }
    int main()
    {
        while(cin>>n)
        {
            for(int i=1; i<=n; i++)
                cin>>a[i];
            cout<<"全排列如下:"<<endl;
            perm(1,n);
        }
        return 0;
    }

    运行结果如下:

  • 相关阅读:
    第三次上机作业
    第二次实训作业
    java第二次作业
    java程序设计第一次作业
    实训作业1
    java2
    我的第一次java作业
    第六次实训作业异常处理
    事件处理程序
    实训作业4
  • 原文地址:https://www.cnblogs.com/chen9510/p/5869825.html
Copyright © 2011-2022 走看看