#include<iostream>
using namespace std;
void swap(int &x,int &y);
void dispasolution(int a[],int n);
void dfs(int a[],int n,int i);
int main()
{
int a[]={
1,2,3};
int n=sizeof(a)/sizeof(a[0]);
cout<<"a的全排列"<<endl;
dfs(a,n,0);
return 0;
}
void swap(int &x,int &y)
{
int tmp=x;
x=y;
y=tmp;
}
void dispasolution(int a[],int n)
{
cout<<' '<<'(';
for(int i=0;i<n-1;i++)
cout<<a[i]<<',';
cout<<a[n-1]<<')';
}
void dfs(int a[],int n,int i)
{
if(i>=n)dispasolution(a,n);
else{
for(int j=i;j<n;j++){
swap(a[i],a[j]);
dfs(a,n,i+1);
swap(a[i],a[j]);
}
}
}
Calculez la permutation complète de a (l'espace de solution est l'arbre de permutation)
Je suppose que tu aimes
Origine blog.csdn.net/weixin_46112487/article/details/108967662
conseillé
Classement