数的排列的递归实现-C++ STL实现

2018-07-20    来源:open-open

容器云强势上线!快速搭建集群,上万Linux镜像随意使用
    #include <iostream>  
    #include <vector>  
    #include "iterator"  
    #include "algorithm"  
    #include "string"  
    #include "stdio.h"  
    using namespace std;  
    ostream_iterator<int> oi(cout,"");  
    int icount = 0;  
    void pailie(vector<int> vectNum,vector<int> &result,int start, int n)  
    {  
        if(start == n) {  
            //copy(result.begin(),result.end(),oi);  
            //cout<<" ";  
            icount++;  
            return;  
        };  
        int i;  
        for(i=0;i<vectNum.size();i++){  
            result[start] = vectNum[i];  
            vector<int> vectNew = vectNum;  
            vectNew.erase(vectNew.begin()+i);  
            pailie(vectNew,result,start+1,n);  
        }  
    }  
    void pailie(vector<int> vectNum,vector<int> &result, int n)  
    {  
        if(vectNum.size()<n) return;  
        pailie(vectNum,result, 0, n);  
    }  
      
    void main()  
    {  
        int a[9] = {1,2,3,4,5,6,7,8,9};  
        vector<int> vectNum(a,a+9);  
        int n=6;  
        vector<int> result(n);  
        pailie(vectNum, result,n);  
        cout<<endl<<icount<<endl;  
    }  

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。

上一篇:C#生成Code128码

下一篇:C# WinForm获取当前路径汇总