递归生成排列(按字典序顺序)
啊西,还不是很理解,懵懵懵懵啊
——2020/03/20
#include <iostream>
using namespace std;
//cur表示已经填好的位置个数
void PrintPermutation(int n, int *A, int cur) {
if (n == cur) {
for (int i = 0; i < n; i++) {
cout << A[i];
}
cout << endl;
}
else {
for (int i = 1; i <= n; i ++) { //尝试在A[cur]中各种整数i
bool is_ok = true;
for (int j = 0; j < cur; j++) {
if ((A[j] == i)) is_ok = false;
}
if (is_ok) {
A[cur] = i;
PrintPermutation(n,A,cur+1);
}
}
}
}
int main(){
int front[100];
PrintPermutation(4, front, 0);
return 0;
}