顺序最重要
题目概述
将1~n的数字全排列,输出结果
模板
#include <iostream>
using namespace std;
const int N = 10;
int path[N], n;
bool st[N];
void dfs(int u) {
if (u > n) {
for (int i = 1; i <= n; i++) cout << path[i] << " ";
cout << endl;
return;
}
for (int i = 1; i <= n; i++) {
if (!st[i]) {
path[u] = i;
st[i] = true;
dfs(u + 1);
// 回溯
// 在递归结束的地方进行回溯
st[i] = false;
}
}
}
int main() {
cin >> n;
dfs(1);
return 0;
}
本文介绍了如何使用C++编程语言中的深度优先搜索(DFS)算法实现从1到n的数字全排列,并展示了递归和回溯过程。程序通过一个模板函数`dfs`来生成所有可能的排列组合。
815





