![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法学习笔记
文章平均质量分 77
QingyunXDU
这个作者很懒,什么都没留下…
展开
-
BFS
BFS(广度优先搜索)定义广度优先搜索:总是以“广度”为第一关键词,碰到“岔道口”时,总是依次访问该岔道口能直接到达的所有节点(与初始状态越接近就越先访问),再按照它们被访问的顺序访问他们能直接到达的所有节点,以此类推实现根据广度优先搜索的特点,它往往使用队列实现适用问题BFS一般适用于最短路问题,在解的分布较为稀疏时,使用DFS会较慢,此时也可以考虑使用BFSBFS伪代码描述(模板)memset(ans, -1, sizeof(ans))//将保存的状态数组初始化,以便于确认是否访问过v原创 2021-02-22 18:33:13 · 123 阅读 · 1 评论 -
DFS
DFS搜索的基本概念搜索:搜索的本质也是一种枚举,是一种**“高级”**的枚举,搜索算法本身的特性决定了它的效率比直接的暴力枚举更高深度优先搜索(DFS):总是以“深度”为第一关键词,不碰到“死胡同”绝不回头,从而遍历所有情况地搜素算法,实现上一般采用递归实现,本质上依赖于栈来实现回溯:当碰到“死胡同”, 无路可走时,返回上一个“岔路口”地过程称为回溯剪枝:通过一些手段(如加入题目条件限制,记忆化等),从而减少搜索次数,优化时间复杂度的技巧称为剪枝回溯,剪枝往往与搜索有机结合,成原创 2021-02-22 18:30:52 · 434 阅读 · 0 评论