全排列(深搜)

题目:1~n个自然数的全排列

算法:深搜

程序:

#include<bits/stdc++.h>
using namespace std;
int n,a[10],b[10]={0};
void print(){
    for(int i=1;i<=n;i++){
        printf("%5d",a[i]);
    }
    printf("\n");
}
void dfs(int t){
    if(t>n){
        print();
    }
    else{
        for(int i=1;i<=n;i++){
            if(b[i]==0){
                a[t]=i;
                b[i]=1;
                dfs(t+1);
                b[i]=0;
            }
        }
    }
}
int main(){
    scanf("%d",&n);
    dfs(1);
    return 0;
}

上一篇:ros之自定义服务数据


下一篇:算法模板-深度优先遍历