程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 全排列問題,排列問題

全排列問題,排列問題

編輯:C++入門知識

全排列問題,排列問題


題目:排列問題,設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;
}

運行結果如下:

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved