List all permutations noj

Insert picture description here

#include<iostream>
#define MAXN 10
using namespace std;

void swap(char &x,char &y);
void dispasolution(char a[],int n);
void dfs(char a[],int n,int i);

int main()
{
    
    
    char a[MAXN];
    int n;
    int i;
    cin>>n;
    for(i=0;i<n;i++){
    
    
        a[i]='a'+i;
    }
    dfs(a,n,0);
    return 0;
}
void swap(char &x,char &y)
{
    
    
    char tmp=x;
    x=y;
    y=tmp;
}
void dispasolution(char a[],int n)
{
    
    
    int i;
    for(i=0;i<n-1;i++)
        cout<<a[i];
    cout<<a[n-1]<<endl;
}

void dfs(char a[],int n,int i)
{
    
    
    int j;
    if(i>=n)dispasolution(a,n);
    else{
    
    
        for(j=i;j<n;j++){
    
    
            swap(a[i],a[j]);
            dfs(a,n,i+1);
            swap(a[i],a[j]);
        }
    }
}


Guess you like

Origin blog.csdn.net/weixin_46112487/article/details/109123020