计算a的全排列(解空间为排列树)

    科技2026-01-12  13

    #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]); } } }
    Processed: 0.021, SQL: 9