/*
#include <iostream>
#include <vector>
using namespace std;
vector<bool> vib;
vector<int> vires;
void dfs(vector<int> &vi,int ct){
if(ct>=vi.size()){
for(auto ieh: vires)
cout<<ieh<<" ";
cout<<endl;
return ;
}
for(int i=0;i<vi.size();++i){
if(vib[i]==false){
vib[i]=true;
vires.push_back(vi[i]);
dfs(vi,ct+1);
vires.pop_back();
vib[i]=false;
}
}
}
int main(){
vector<int> vi;
vi={1,2,3};
for(int i=0;i<vi.size();++i)
vib.push_back(false);
dfs(vi,0);
return 0;
}
*/
//这个交换元素的版本更加简洁。
#include <iostream>
#include <vector>
using namespace std;
void exchange(vector<int> &vi, int start){
if(start>=vi.size()){
for(auto ieh: vi)
cout<<ieh<<" ";
cout<<endl;
}
for(int i=start;i<vi.size();++i){
swap(vi[start],vi[i]);
exchange(vi, start+1);
swap(vi[i],vi[start]);
}
}
int main(){
vector<int> vi;
vi={1,2,3};
exchange(vi, 0);
return 0;
}
全排列
最新推荐文章于 2019-10-08 09:07:37 发布