赞
踩
你问一个人听过哪些算法,那么深度优先搜索(dfs)和宽度优先搜索(bfs)那肯定在其中,很多小老弟学会dfs和bfs就觉得好像懂算法了,无所不能,确实如此,学会dfs和bfs暴力搜索枚举确实利用计算机超强计算大部分都能求的一份解,学会dfs和bfs去暴力杯混分是一个非常不错的选择!
五大经典算法的回溯算法其实也是dfs的一种应用,是不是回忆起被折磨的八皇后问题。基础的dfs和bfs学习来思想很容易,写出来模板代码也不难,但很多时候需要在此基础上灵活变通就有不小难度了。
不过dfs 和bfs初步学习搞懂原理比较简单,但是想要精通 dfs和bfs还是很难的,因为很多问题是在此基础上进行变形优化的,比如dfs你可能考虑各种剪枝问题,bfs可能会涉及很多贪心的策略,有的还要考虑到记忆化的问题、双向bfs、bfs+dfs等等才能更好解决的问题,不过本文讲的相对基础,不同的延伸需要自己刷题去学习才行。
dfs和bfs一般用于处理图论的问题,那么在看问题之前首先要关注图的存储问题,正常一般用邻接矩阵或者邻接表存储图(对于十字链表、压缩矩阵之类空间优化这里不进行讨论)。
邻接矩阵:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。