permute -排列

来源:互联网 发布:mac打碟软件vitualdj 编辑:程序博客网 时间:2024/06/03 22:54

算法来源
     参考 :http://www.programcreek.com/2013/02/leetcode-permutations-java/

数组的全排 {1,2,3}

#include <iostream>#include <string>#include <vector>#include <cstdio>#include <sstream>using namespace std;void swap(int num[],int start,int j){int temp = num[start];num[start] = num[j];num[j] = temp;}string toArryStr(int num[],int len){    string str = "";    ostringstream oss;for(int i=0;i<len;i++){oss << num[i];}return oss.str();}void permute(int num[],int len,int start,vector<string> &result){if(start >= len){string str = toArryStr(num,len);result.push_back(str);}for(int j = start;j<len ;j++ ){        swap(num,start,j);        permute(num,len,start+1,result);        swap(num,start,j);    }}vector<string> permute(int num[],int len){vector<string> result;permute(num,len,0,result);    for(vector<string>::const_iterator it=result.begin();it!=result.end();it++){    cout << "排列:" << *it <<endl;    }    return result;}

结果:

排列:1234排列:1243排列:1324排列:1342排列:1432排列:1423排列:2134排列:2143排列:2314排列:2341排列:2431排列:2413排列:3214排列:3241排列:3124排列:3142排列:3412排列:3421排列:4231排列:4213排列:4321排列:4312排列:4132排列:4123



0 0
原创粉丝点击