问题描述
求1-n的所有按字典序的全排列
C++实现
#include <bits/stdc++.h>
using namespace std;
const int maxn = 10;
int n, P[maxn];
bool hashTable[maxn];
void generateP(int index) {
if(index == n + 1) {
for(int i = 1; i <= n; i++) {
printf("%d ", P[i]);
}
printf("\n");
return;
}
for(int x = 1; x <= n; x++) {
if(hashTable[x] == false) {
P[index] = x;
hashTable[x] = true;
generateP(index + 1);
hashTable[x] = false;
}
}
}
int main() {
n = 3;
generateP(1);
return 0;
}
网友评论