数的排列的递归实现-C++ STL实现
2018-07-20 来源:open-open
#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码
最新资讯
热门推荐