全排序

#include<bits/stdc++.h>
using namespace std;

const int Max=100;
int n,p[Max];
bool hashTable[Max]= {0};                           //散列

void generateP(int index) {
    if(index==n+1) {
        for(int i=1; i<=n; i++) {
            cout<<p[i]<<" ";
        }
        cout<<endl;
        return ;
    }
    for(int i=1; i<=n; i++) {
        if(!hashTable[i]) {
            p[index]=i;
            hashTable[i]=1;
            generateP(index+1);                             //递归不能用index++,否则不能回溯
            hashTable[i]=0;
        }
    }
}


int main() {
    cin>>n;
    generateP(1);
    return 0;
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-09 11:15
点赞 评论 收藏
分享
07-11 11:10
门头沟学院 Java
请问各位大三兄弟们跟hr说多久实习时间到时候可以提前跑路吗?
程序员小白条:问就是六个月以上,可以一年,实习都这样,你入职后想跑就跑
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务