浅谈dfs深度优先搜索
2024-09-08 19:23:58
深度优先搜索(Depth First Search)是一种常见的暴力算法
此算法上限和下限较高,容易上手,适用情形多,学习性价比高
下限高于有固定的模板,且时间复杂度明显优于暴力枚举,容易拿到题目部分分
int DFS (int k)//DFS常见模板
{ if (到目的地(边界))
{ 输出结果; } else
{ for (int i = 1; i <= n;++i)
{ if (满足条件)
{ 保存边界; DFS(k+1); 恢复第k步的状态; } } }
}
上限高于可优化性高,通过剪枝优化可以大幅度缩小数据搜索范围,以达到意料之外的结果
适用范围广,属于算法竞赛中的万金油算法
而同时dfs也拥有一些缺点
时间复杂度较高(最坏情况为O(n!))很难拿到高分
对比兄弟算法bfs广度优先搜索不适用于对问题最优解的的求解
……
所以我们要结合多方面因素,权衡利弊,在比赛中选取最优的方法,以获取更高的得分
最新文章
- lua定义一个简单的类
- 团队项目——站立会议 DAY8
- 【leetcode】Partition List(middle)
- 自制Chrome拓展
- 【转】SQL Server与Oracle的区别
- Android开发系列----学习伊始
- 快速使用shortcut,适配各种ROM
- NFinal 视图—用户控件
- Windows Server AppFabric分布式缓存研究
- 关于TCP/IP,必知必会的十个经典问题[转]
- [2019.04.16] 由Python写成的自动解压脚本
- Windows 下 docker 部署 gitlab ci
- 【IDEA填坑】xml不编译
- Java采用RSA加密及解密技术的有关Maven项目的配置流程:
- python 牛客网 你的输出为:空。请检查一下你的代码,有没有循环输入处理多个case。问题解决
- 02 JDBC相关
- Haskell语言开发工具
- ActiveReports 报表中 RDF 文件解析
- mysql中使用日期加减时无法识别年-月格式数据的问题,%Y-%m";这种格式数据
- JDBC 连接Oracle 数据库,JDBC 连接Mysql 数据库