递归解决全排列问题
时间:2022-07-23
本文章向大家介绍递归解决全排列问题,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
参考文献 《算法竞赛宝典》--张新华
算法流程
//全排列算法-深搜字典序
#include <iostream>
using namespace std;
bool used[100];//标记某个数字是否被使用过
int a[100], Count, N;
void print() {
for (int k = 1; k < N + 1; k++)
cout << a[k];
cout << "n";
Count++;
}
void dfs(int i) {
if (i > N)//递归结束,打印结果
print();
else
for (int k = 1; k <= N; k++)
if (used[k] == 0) { //used[]是bool类型的数组,没有被使用时默认为0
used[k] = 1;//做已使用过的标记
a[i] = k;//赋值 a[1]=1,
dfs(i + 1);
// i的值在函数调用内会不断的增加直到超越N即最终终止此函数的条件是i=N+1
used[k] = 0;//还原为未使用
}
}
int main() {
cin >> N; // N是指需要全排序使用的元素个数
dfs(1);
cout << Count << endl;
// Count是一个全局变量,用于统计一共生成的序列数
return 0;
}
结果
- CENTOS6.5安装CDH5.12.1(二)
- @ControllerAdvice + @ExceptionHandler 处理 全部Controller层异常
- 动态增加表单元素并获取元素的text和value提交
- SpringBoot常用配置
- Json格式String类型字符串转为Map工具类
- spring boot thymeleaf常用方式
- Java工具类- 跨域工具类
- python语言中的AOP利器:装饰器
- 如何使用supervisor管理你的应用
- Manjaro安装配置
- [Golang软件推荐] Frp内网穿透
- [Golang软件推荐] Golang通用连接池
- RxJS -- Subscription
- ASP.Net Core项目在Mac上使用Entity Framework Core 2.0进行迁移可能会遇到的一个问题.
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Python 爬虫进阶必备 | 关于某租房网站数据加密的分析
- CMAKE学习记录(二)
- maven 中的版本依赖冲突问题
- Manual for Ubuntu Installation
- 修改自定义站点监控页面的样式
- 快速建站“新玩具”—glitch.me
- 踩坑记 | Flutter升级影响了NestedScrollView?
- Android | xml和view的那些事
- Android | 资源冲突覆盖的一些思考
- 如何用脚本自动转化,一个protobuf文件到json格式
- 聊聊dubbo-go的forkingCluster
- 还在用 map[string]interface{} 处理 JSON?告诉你一个更高效的方法——jsonvalue
- 聊聊dubbo-go的failsafeCluster
- 【HDFS】distcp报错Check0sum mismatch
- ffmpeg转换多媒体文件,真香