添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
void run(int n) {
// 递归调用
int i;

// 终止条件: 当当前操作元素是最后数组一个元素时结束递归;
if (N - 1 == n) {
dump();  // 输出结果;
count ++;  // 更新统计个数;
return;  // 结束递归;
}
// 递归方向: 每层递归的当前元素都可以和其后的元素进行交换;
for (i = n; i < N; i++) {  // 每层递归将遍历余下数组元素(包含自身)并以此将当前元素与其后的元素交换;
swap(n, i);
run(n + 1);  // 递归方向: 进入下一层的递归;
swap(n, i);  // 递归返回时恢复本层递归的现场(因下一层递归会更改当前工作数组x[N]);
}
}